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!
