JAva指定符号化の行別読み書きtxtファイル(いくつかの読み書き方式の比較)

9646 ワード

入出力のいくつかの形式
1.FileReader,FileWriter
	File r = new File("temp.txt")
	FileReader f = new FileReader(name);//    name
	BufferedReader b = new BufferedReader(f);//    ,   readline  ,      。
	Srting str = null;
	while((str = b.readline()) != null){
			System.out.print(str);//     
	}
	// FileReader        ,      ,      
     FileWriter writer = new FileWriter("c://test.txt");//FileWriter         ,        。
     BufferedWriter bw = new BufferedWriter(writer);//    ,      
     bw.write("       ");

2.inputStreamReader,outputStreamWriter
	File f = new File("//..//");
	InputStreamReader reader = new InputStreamReader(new FileInputStream(f));
	BuffeReader br = new BufferedWriter(reader);
	//FileReader            
	//FileInputStream      
	//InputStreamReader        ,  InputStreamReader           ,        。
	//OutputStreamWriter    InputStreamReader,                  ,           。

3.行ごとの読み書きと符号化方式の指定
	//       ,        ,          ,    
	List<String>temp = new ArrayList<>();
	File f = new File("c://data.txt");
	InputStreamReader reader = new InputStreamReader(new FileInputStream(f),"GBK");
	BufferedReader br = new BufferedReader(reader);
	String str=null;
	while((str=br.readline())!=null){
			temp.append(str);
	}
	br.close();
	reader.close();
	//     。               ,             
	OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream("out.txt"),"GBK");
	BufferedWriter bw = new BufferedWriter(os);
	PrintWriter out = new PrintWriter(bw);
	for(String aTemp:temp){
			out.println(aTemp);
	}
	bw.close();
	os.close();
	out.close();