[ JAVA ] 코드상에서 데이터를 파일로 생성할 때 의도와 다르게 가끔씩 크기가 0이나 1K 의 파일이 생성되는 문제점이 있는데 왜 그런가요?
예를 들어서
int repeat = 200;
byte[] str = new byte[4000000];
가 있어서 str 가 만약에 4Mbyte 크기의 byte 열이라고 가정하면 다음 코드를 돌리면
for (int i = 0; i < repeat; i++) {
for (int j = 0; j < 30; j++) {
int rd = rand_loss.nextInt(str.length);
str [rd] = 0;
}
String outFile = "E:/tt_" + i + ".txt";
java.io.File f = new java.io.File(outFile);
java.io.FileOutputStream fos = null;
try {
fos = new java.io.FileOutputStream(f);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
try {
fos.write(str);
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
====================================================================
같이 코드를 수행하면 200개의 똑같은 4Mbyte 크기의 파일이 tt0.txt tt2.txt ~~ tt199.txt 까지 생성되야 합니다.
그런데 생성된 파일 중에는 중간중간 크기가 0이거나 1 kbyte 를 가지는데요 이렇게 되는 이유가 뭔지.. 해결책이 있는지..
답변 부탁드립니다. ㅠㅠ (아 참고로 NetBeans IDE 6.7.1 을 사용했습니다)
댓글 달기