首页 > 电脑

javaio流

更新时间2018-11-30 11:25:45

将E盘liang文件复制到E盘mySite中

fos = new FileInputStream("e:liang ext.txt");

fis = new FileOutputStream("e:mySite2.txt");

byte []b = new byte[1024];

int len = -1;

while((len=fos.read(b))!=-1){

fis.write(b, 0, len);

}

System.out.println("复制成功!");


1.int len 必须等于-1吗?

2.len是int类型 fos.read(b)类型不一样 ,不报错为什么?(好懵逼希望有大神指教)

1.int len可以=任意int,如果fos.read(b)=-1表示已经读取完成,所以让len=-1只是做一个预设读完了,不过随着读出来的值不一样len也会被赋值。

2.public int read(byte b[]) throws IOException {
return read(b, 0, b.length);
}

jdk提供read方法是返回一个int 用int接收没有任何问题,不会报错

3.使用完输入输出流请及时关闭流。

InputStream fos = null;
OutputStream fis = null;
try {
fos = new FileInputStream("e:liang ext.txt");
fis = new FileOutputStream("e:mySite2.txt");
    byte[] b = new byte[1024];
    int len = -1;
    while ((len = fos.read(b)) != -1) {
fis.write(b, 0, len);
}
System.out.println("复制成功!");
}catch (Exception e){
e.printStackTrace();
}finally {
if(fos !=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
    }
if(fis !=null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
    }
}

相关标签:java

上一篇:为什么每创建一个Pythonfile,就需要重新添加库

下一篇:数据块是存储大小吗