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]