使用字符流(Writer、Reader)完成對文件的讀寫操作


字符流

  • 字符輸出流: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();
		}
	}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM