关于java io

来源:百度知道 编辑:UC知道 时间:2024/06/30 01:42:01
import java.io.*;
public class out1{
public static void main(String args[]){
try{
FileOutputStream a=new FileOutputStream("d:/out1.txt");
FileInputStream b=new FileInputStream("d:/out1_1.txt");
int c;
while((c=b.read())!=-1){
a.write(c);
}
a.close();
b.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}

前些天看到的程序 实现了文件复制的功能 很不明白 a.write(c)中c是一个int型的数值 怎么会实现复制呢? 吧c看作是 (阿斯科)编码?再转成实际的字符?
高手再去看看 http://zhidao.baidu.com/question/111026623.html
································

(c=b.read())!=-1 是这个意思
如果b.read()确实读到了流数据,c是一个正数。
如果流数据读完了,b.read()就会成-1。

我结合那天看到的数据符, 任何一个符号,字母在Unicode(ASCII是Unicode前128个元素)中都是一个编号,比如(int)‘A'输出得到65,所以我想c应该是读到的字符转换成了数字编号,如果没读到(读完了)就显示-1。

为什么一定要看做是ASC码呢?!你看成是二进制流不就行了

比如卡巴斯基安装文件,它的二进制流是如下形式11001100111000110010101100110110101......
复制的时候一次复制32位有问题么?!

int c其实在后面用的时候隐式转换成了char c,所以读的是字符流