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!