我被要求制作一个字节文件。 我得到了数组字节a [] = {97,98,99,100,101,102} 现在我必须从a []数组中创建字节文件。 但我有局限性:
必须在文件中几乎同时检测到所有字节。
public class WriteByteFile { byte [] a = {97,98,99,100,101,102};
final String file =“file”;
/ *打开文件* / BufferedOutputStream out = null; 尝试{ out = new BufferedOutputStream (new BufferedOutputStream(file)); } catch(FileNotFoundException e1){ System.err.println(“无法打开文件:”+ file1 +“:”+ e1.getMessage()); System.exit(1); }
/ *写文件* / 尝试{ for(int b = 0; b< 1650; b ++){ out.write(//这里我必须从[]获取随机元素 但是接下来的5次又没有了;) }
答案 0 :(得分:1)
1.the data of the file must be random (from the a[])
2.all the bytes must be detected in the file almost the same times.
这两条线是矛盾的。如果您的文件中必须存在所有字符same no of times
,那么您从数组中选择的字符不是随机的。
答案 1 :(得分:0)
必须在文件中几乎同时检测到所有字节。
这里的关键是“差不多”。这里不需要精确等价,只需要统计等价。
如果您随机选择每个字节,您将满足此要求。统计数据将完成其余的工作。如果你继续投掷骰子,你将得到1-6几乎相同的次数,但没有机制来保证完全等效(事实上,这里确切的等效性是不太可能的)。