首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java io奇怪有关问题

2012-01-12 
关于java io奇怪问题大家好:第一次发帖,向大家讨教一个问题,请多多指教最近想看下java io流,写了个小例子

关于java io奇怪问题
大家好:
第一次发帖,向大家讨教一个问题,请多多指教
最近想看下java io流,写了个小例子将c:\\cc.txt文件内容读出来写入c:\\ss.txt文件中区,代码很简单,只有几行,代码如下:
public static void main(String[] args) throws FileNotFoundException {
String res = "c:\\cc.txt";
File file = new File(res);
InputStream str = new FileInputStream(file);
OutputStream out = new FileOutputStream("c:\\ss.txt");
byte[] by = new byte[10];
int tempchar = 0;
try {
while ((tempchar = str.read(by, 0, by.length)) != -1) {
out.write(by, 0, by.length);
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
str.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
可出现问题了,运行完成之后ss.txt文件内容比cc.txt文件内容要多,这是怎么回事?当我把byte数组大小改为100以上就可以了。这咋回事啊?谢谢。

[解决办法]
out.write(by, 0, by.length);
这个不对,你要写进去,应该是读到多少字节,写多少字节进去,如果是最后一次读,它可能没有读到那么字节,那你的数组后面就有很多不是原来文件中的字节。所以有问题呀。
应该改为:
out.write(by, 0, tempchar);

热点排行