java讀取文件和寫入文件


package com.xjh.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* 讀入兩個文件,寫入一個文件測試字符編碼問題 (0 表示: GBK 1 表示: utf-8)
* readA readB writer result
* 0 0 0 ok
* 0 0 1 ok
* 0 1 0 亂碼(前ok後亂碼) 因爲前面的讀和寫一致
* 0 1 1 ok
* 1 0 0 亂碼(前亂碼後ok) 因爲後面的讀和寫一致
* 1 0 1 ok
* 1 1 0 亂碼(前後都是亂碼)
* 1 1 1 ok
*
* @author xiejiaohui (2013-1-11)
*
*/
public class LuanMaTest {

public static void main(String[] args) throws Exception {
printNowDate();

// 中國銀行|農業銀行
// 建設銀行|交通銀行
File R_A_0 = new File("d:\\Reader_A_GBK.txt"); // 保存格式爲:ascii
File R_A_1 = new File("d:\\Reader_A_utf-8.txt"); // 保存格式爲:utf-8

// 工商銀行|招商銀行
// 商業銀行|村鎮銀行
File R_B_0 = new File("d:\\Reader_B_GBK.txt"); // 保存格式爲:ascii
File R_B_1 = new File("d:\\Reader_B_utf-8.txt"); // 保存格式爲:utf-8

File W_0_0_0 = new File("d:\\W_0_0_0.txt");
File W_0_0_1 = new File("d:\\W_0_0_1.txt");
File W_0_1_0 = new File("d:\\W_0_1_0.txt");
File W_0_1_1 = new File("d:\\W_0_1_1.txt");
File W_1_0_0 = new File("d:\\W_1_0_0.txt");
File W_1_0_1 = new File("d:\\W_1_0_1.txt");
File W_1_1_0 = new File("d:\\W_1_1_0.txt");
File W_1_1_1 = new File("d:\\W_1_1_1.txt");

BufferedReader R_A_0_bf = null;
BufferedReader R_A_1_bf = null;
BufferedReader R_B_0_bf = null;
BufferedReader R_B_1_bf = null;

BufferedWriter W_0_0_0_bf = null;
BufferedWriter W_0_0_1_bf = null;
BufferedWriter W_0_1_0_bf = null;
BufferedWriter W_0_1_1_bf = null;
BufferedWriter W_1_0_0_bf = null;
BufferedWriter W_1_0_1_bf = null;
BufferedWriter W_1_1_0_bf = null;
BufferedWriter W_1_1_1_bf = null;
// 0 0 0
action(R_A_0, "GBK", R_A_0_bf, R_B_0, "GBK", R_B_0_bf, W_0_0_0, "GBK", W_0_0_0_bf);
// 0 0 1
action(R_A_0, "GBK", R_A_0_bf, R_B_0, "GBK", R_B_0_bf, W_0_0_1, "utf-8", W_0_0_1_bf);
// 0 1 0
action(R_A_0, "GBK", R_A_0_bf, R_B_1, "utf-8", R_B_1_bf, W_0_1_0, "GBK", W_0_1_0_bf);
// 0 1 1
action(R_A_0, "GBK", R_A_0_bf, R_B_1, "utf-8", R_B_1_bf, W_0_1_1, "utf-8", W_0_1_1_bf);
// 1 0 0
action(R_A_1, "utf-8", R_A_1_bf, R_B_0, "GBK", R_B_0_bf, W_1_0_0, "GBK", W_1_0_0_bf);
// 1 0 1
action(R_A_1, "utf-8", R_A_1_bf, R_B_0, "GBK", R_B_0_bf, W_1_0_1, "utf-8", W_1_0_1_bf);
// 1 1 0
action(R_A_1, "utf-8", R_A_1_bf, R_B_1, "utf-8", R_B_1_bf, W_1_1_0, "GBK", W_1_1_0_bf);
// 1 1 1
action(R_A_1, "utf-8", R_A_1_bf, R_B_1, "utf-8", R_B_1_bf, W_1_1_1, "utf-8", W_1_1_1_bf);
printNowDate();
}

public static void println(String input) {
System.out.println(input);
}

public static void printNowDate() {
println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}

public static void action(
File readFileA, String readFileAFmt, BufferedReader bufferedReaderA,
File readFileB, String readFileBFmt, BufferedReader bufferedReaderB,
File WriteFile, String writeFileFmt, BufferedWriter bufferedWriter)
throws Exception {
String s1;
String s2;
bufferedReaderA = new BufferedReader(new InputStreamReader(new FileInputStream(readFileA), readFileAFmt));
bufferedReaderB = new BufferedReader(new InputStreamReader(new FileInputStream(readFileB), readFileBFmt));
bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(WriteFile), writeFileFmt));
while ((s1 = bufferedReaderA.readLine()) != null) {
while ((s2 = bufferedReaderB.readLine()) != null) {
String[] s_l = s1.split("\\|");
String[] s_2 = s2.split("\\|");
bufferedWriter.append(s_l[1] + "____" + s_2[1] + "\n");
println(s_l[0] + "____" + s_l[1] + "____" + s_2[0] + "____" + s_2[1]);
}
}
bufferedReaderA.close();
bufferedReaderB.close();
bufferedWriter.close();
}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章