我有下面列出的数组:
我想在文件中写入这些字节,直到文件大小达到1029字节。有什么想法吗?
我尝试了这段代码,但它似乎不起作用:
public static byte[] aSnouty = {97, 98, 99, 100, 101, 102, 103, 104, 105, 49, 45, 50, 51, 52, 53};
File file = new File(filename);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
do {
fos.write(aSnouty);
} while(file.length()!=1029);
} catch(Exception ex) {
ex.printStackTrace();
}
答案 0 :(得分:0)
以下是从您提供的代码开始的解决方案:
byte[] aSnouty = {97, 98, 99, 100, 101, 102, 103, 104, 105, 49, 45, 50, 51, 52, 53};
File file = new File("C:/users/BXM0121/testTenTwentyNine.txt");
FileOutputStream fos = new FileOutputStream(file);
int fileSizeInBytes = (int) file.length();
final int maxFileSize = 1029;
try {
do {
if ((maxFileSize - fileSizeInBytes) < aSnouty.length)
{
fos.write(Arrays.copyOfRange(aSnouty, 0, maxFileSize-fileSizeInBytes));
break;
}
fos.write(aSnouty);
fileSizeInBytes += aSnouty.length;
} while (file.length() != maxFileSize);
} catch(Exception ex) {
ex.printStackTrace();
} finally{
fos.close();
}
编辑:我看到你对正态分布的评论,这是一个完全不同的野兽。我没有为此编码。