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.txt 文件内容如下:
控制台输出的结果为:
hello world!