`

java读取文件和写入文件

    博客分类:
  • 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();
	}

}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics