今天寫了一個讀寫文件的簡單程序,爲了把每一行讀出來而後把特殊符號去除,而後在寫到文件中;最後發現轉換後的文件少數據,經過分析發現程序寫的有問題,主要仍是程序寫的很少,一些低級的錯誤還不能避免或很快發現,錯誤代碼以下: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