因为写入txt格式的话,只能写入字符形式的数据,如果写入int类型的数据,会根据acci码表转化为对应的字符。但是如果写的超出0~127以外的数据的话,将写入最低字节,其他三个字节将抛弃,这也是int强制转化byte类型的结果。
?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748/ 基本方法,每次在文件中写入一个字节 如果是多字节发送,write(byte【】 b)没有write(byte【】 b,int offset,int length)快 因为在实际的网络传输中每个tcp分片至少包含40个字节的开销用于路由和纠 错 @param out @throws IOException / private static void generateCharacters(FileOutputStream out) throws IOException { int firstPrintableCharacters=33; int numberPrintableCharacters=94; int numberOfCharactersPerLine=72; int start=firstPrintableCharacters; while(true){ for(int i=start;i<start+numberOfCharactersPerLine;i++){ out.write((i-firstPrintableCharacters) %numberPrintableCharacters+firstPrintableCharacters); } out.write('\r'); out.write('\n'); start=((start+1)-firstPrintableCharacters)%numberPrintableCharacters+firstPrintableCharacters; } } / 在tcp协议中如果进行单字节发送的话,效率不高,因为每次发送一字节会就会进行一遍数据传输,导致协议的开销很大, 如果将多字节整合到一个字节数组中进行发送,只需要一次就能发送全部字节,所以效率要高。 @param out @throws IOException */ private static void generateCharactersGood(FileOutputStream out) throws IOException{ int firstPrintableCharacters=33; int numberPrintableCharacters=94; int numberOfCharactersPerLine=72; int start=firstPrintableCharacters; byte【】 line=new byte【numberOfCharactersPerLine+2】; while(true){ for(int i=start;i