今天写了一个读写文件的简单程序,为了把每一行读出来而后把特殊符号去除,而后在写到文件中;最后发现转换后的文件少数据,经过分析发现程序写的有问题,主要仍是程序写的很少,一些低级的错误还不能避免或很快发现,错误代码以下:spa
public static void main(String[] args) {
List<String> arr = new ArrayList<String>();it
/* 读取数据 */
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D:\\test\\bb.txt")),"UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
String repStr= line.replace("{", "").replace("}", "").replace(",", "\t");
arr.add(repStr);
if(arr.size()>=200000){io
/* 输出数据 */
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("D:\\test\\aa.txt")),
"UTF-8"));
for (String str : arr) {
bw.write(str);
bw.newLine();
}
}
}test
br.close();
bw.close();
} catch (Exception e) {
System.err.println("write errors :" + e);
}
}List
正确的代码逻辑是:程序
public static void main(String[] args) {
List<String> arr = new ArrayList<String>();
BufferedReader br = null;
BufferedWriter bw = null;
/* 读取数据 */
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(
new File("D:\\test\\bb.txt")), "UTF-8"));
bw = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(new File(
"D:\\test\\aa.txt")), "UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
String replStr = line.replace("\\{", "").replace("\\}", "")
.replace(",", "\t");
//写数据
bw.write(replStr);
bw.newLine();
}
br.close();
bw.close();
} catch (Exception e) {
System.err.println("errors :" + e);
}
}error