FileOutputStream、FileInputStream的使用
FileOutputStream是OutputStream的继承类,它的主要功能就是向磁盘上写文件。FileOutputStream类中的write方法会把字节一个一个的写入磁盘中。
以下是使用FileOutputStream输出流将数据写入到指定的文件中,在构建FileOutputStream输出流对象的过程中,如果指定的文件不存在,那么就创建该文件。
package com.tianjh.io.outputstream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
- Created on 2020/12/9
- 向磁盘上指定文件文件写入数据
- $FileOutputStreamDemo用法
*/
public class FileOutputStreamDemo {
public static void main(String[] args) {
FileOutputStream fileOutputStream;
try {
// 构建FileOutputStream对象,"D:/one.txt"文件不存在会自动新建
fileOutputStream = new FileOutputStream("D:/one.txt");
// write方法会把字节一个一个的写入磁盘中 write方法支持byte、int基本类型
byte aa = 97;
fileOutputStream.write(aa);
int bb = 98;
fileOutputStream.write(bb);
char cc = 'c';
// 没有write(char),只能机器自动从char转到int
fileOutputStream.write(cc);
// String dd = "100";
// fileOutputStream.write(dd);
// fileOutputStream.write(dd)会报错, 因为FileOutputStream流中没有write(String)方法,
// 不过在PrintStream中有write(String)方法
} catch (IOException e) {
e.printStackTrace();
}
}
}
FileInputStream是IntputStream的继承类,它的主要功能就是向磁盘上读文件。FileInputStream类的read方法会一个一个字节的从磁盘往回读数据。下列是通过FileInputStream文件输入流读取指定文件 "D:/hello.txt"中的数据。
package com.tianjh.io.inputstream;
import java.io.*;
/**
- Created on 2020/12/9
- 从磁盘上读入文件,并输出到控制台
- $FileInputStreamDemo用法
*/
public class FileInputStreamDemo {
public static void main(String[] args) {
FileInputStream fileInputStream;
int size;
try {
// 使用字符串类型的文件名创建一个文件输入流对象来读取文件
fileInputStream = new FileInputStream("D:/hello.txt");
// available() 返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,而
// 不会被下一次调用此输入流的方法阻塞。
size = fileInputStream.available();
for (int i = 0; i < size; i++) {
System.out.print((char) fileInputStream.read());
// expected output: hello world!
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
控制台输出的结果为:
hello world!