BufferedWriter写数据不完全的问题
最近获得了一个1000万以内的素数表。直接拷贝至Word电脑吃不消,我就用java实现。
成功拷贝。但是我在查看的时候发现每10000总会丢掉很小一部分。
我尝试着用9000来分段,发现还是会在不经意中丢掉一部分,我很不明白这是为什么。
一下是代码:
package io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class CopyTXT {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\xia\\Desktop\\ss.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
int i = 0;
int t = 0;
String str = null;
File target = null;
BufferedWriter bw = null;
while ( (str = br.readLine()) != null) {
if (i % 10000 == 0) {
System.out.println(i);
target = new File("C:\\Users\\xia\\Desktop\"+t+".txt");
bw = new BufferedWriter(new FileWriter(target));
t ++;
}
i ++;
if (str.indexOf(i+":") == -1)
System.out.println("error"+i);
bw.write(str);
bw.write("\t\r\n");
}
br.close();
bw.close();
}
}
在close()之前先flush()是个好习惯。
那问题的原因呢??