字符流
- 字符輸出流:Writer,對文件的操作使用子類FileWriter
- 字符輸入流:Reader,對文件的操作使用子類FileReader
- 每次操作的是一個字符
- 文件字符操作流會自帶緩存,默認大小為1024字節,在緩存滿后,手動刷新或關閉時才會把數據寫入文件。
如何選用字節流還是字符流
一般操作非文本文件時,使用字節流,操作文本文件時,建議使用字符流
使用字符流完成文件的讀寫操作
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
/**
* 使用字符流完成文件的讀寫操作
*/
public class WriterAndReader {
public static void main(String[] args) {
out();
in();
}
// 從文件讀取數據
private static void in() {
File file = new File("F:/test.txt");
try {
Reader in = new FileReader(file);
// 因為使用了處理過的字符流,所以緩沖數組cs的大小隨意,都不會導致多讀
char[] cs = new char[3];
int len = -1;
StringBuilder sb = new StringBuilder();
while ((len = in.read(cs)) != -1) {
sb.append(new String(cs, 0, len));
}
in.close();
System.out.println(sb);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 將數據寫入到文件
private static void out() {
File file = new File("F:/test.txt");
try {
Writer out = new FileWriter(file, true);
out.write("我愛Java");
out.flush();
out.close();
System.out.println("數據寫入成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}