[ 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 을 사용했습니다)
윈도 말고 다른
윈도 말고 다른 플랫폼은 괜찮나요? 윈도의 바이너리파일/텍스트파일 차이 일 것 같은 느낌이 들지만,
자바 API를 보면 binary filetype을 명시하는 부분이 보이진 않네요.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
댓글 달기