java reader file & writer file


package com.xjh.dh;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
*
* ok
*
* @author xiejiaohui
*
*/
public class FileCheck {

public static void main(String[] args) throws Exception {
String file = "c:\\a.csv";
String write_ok = "c:\\a_ok.csv";
String write_er = "c:\\a_er.csv";

// 没有乱码
String read_charset = "gbk"; // 读文件的字符集
String writer_charset = "utf-8"; // 写文件的字符集

// 乱码
// String read_charset = "utf-8";
// String writer_charset = "gbk";

// 乱码
// String read_charset = "utf-8";
// String writer_charset = "utf-8";

// 乱码
// String read_charset = "gbk";
// String writer_charset = "gbk";

// 乱码
// String read_charset = "iso-8859-1";
// String writer_charset = "iso-8859-1";

// String charset = "utf-8";
// String charset = "iso-8859-1";
// String charset = "gb2312";
InputStreamReader inputStreamReader = new InputStreamReader(
new FileInputStream(file), read_charset);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

FileOutputStream outputStream_ok = new FileOutputStream(write_ok);
FileOutputStream outputStream_er = new FileOutputStream(write_er);

OutputStreamWriter writer_ok = new OutputStreamWriter(outputStream_ok,
writer_charset);
OutputStreamWriter writer_er = new OutputStreamWriter(outputStream_er,
writer_charset);

try {
String s = null;
int i = 0;
while ((s = bufferedReader.readLine()) != null) {
String[] s2 = s.split("\\,");
if (s2.length != 54) {
// System.out.println("error in line: " + (i + 1) + " " + s);
System.out.println(s);
i++;
writer_er.append(s);
writer_er.append("\n");
continue;
} else {
writer_ok.append(s);
writer_ok.append("\n");
}
i++;
}
System.out.println("ok " + i );
} catch (Exception e) {
e.printStackTrace();
} finally {
writer_ok.close();
writer_er.close();
bufferedReader.close();
}
}
}



以下两个文件会出现乱码

[code]
package com.xjh.dh;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;

/**
*
* 写出来的文件有乱码
*
* @author xiejiaohui
*
*/
public class FileCheck2 {

public static void main(String[] args) throws Exception {
String file = "c:\\a.csv";
FileWriter fileWriter_ok = new FileWriter(new File("c:\\a_ok.csv"));
FileWriter fileWriter_er = new FileWriter(new File("c:\\a_er.csv"));
String charset = "gbk";
// String charset = "utf-8";
// String charset = "iso-8859-1";
// String charset = "gb2312";
InputStreamReader inputStreamReader = new InputStreamReader(
new FileInputStream(file), charset);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

try {
String s = null;
int i = 0;
while ((s = bufferedReader.readLine()) != null) {
String[] s2 = s.split("\\,");
if (s2.length != 54) {
System.out.println("error in line: " + (i + 1) + " " + s);
// System.out.println(s);
i++;
fileWriter_er.append(s);
fileWriter_er.append("\n");
continue;
} else {
fileWriter_ok.append(s);
fileWriter_ok.append("\n");
}
i++;
}
System.out.println("ok " + i );
} catch (Exception e) {
e.printStackTrace();
} finally {
fileWriter_er.close();
fileWriter_ok.close();
bufferedReader.close();
}

}

}

[/code]

[code]
package com.xjh.dh;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

/**
*
* 写出来的文件有乱码
*
* @author xiejiaohui
*
*/
public class FileCheck3 {

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

BufferedReader bufferedReader = new BufferedReader(new FileReader(
"c:\\a.csv"));
FileWriter fileWriter_ok = new FileWriter(new File(
"c:\\a_ok.csv"));
FileWriter fileWriter_er = new FileWriter(new File(
"c:\\a_er.csv"));

try {
String s = null;
int i = 0;
while ((s = bufferedReader.readLine()) != null) {
String[] s2 = s.split("\\,");
if (s2.length != 54) {
System.out.println("error in line: " + (i + 1) + " " + s);
// System.out.println(s);
i++;
fileWriter_er.append(s);
fileWriter_er.append("\n");
continue;
} else {
fileWriter_ok.append(s);
fileWriter_ok.append("\n");
}
i++;
}
System.out.println("ok " + i );
} catch (Exception e) {
e.printStackTrace();
} finally {
fileWriter_er.close();
fileWriter_ok.close();
bufferedReader.close();
}

}

}

[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值