输入流InputStream的read()方法放回的值为int整型,即是源文件内容的二进制码,如果直接输出,需要进行强制类型转换,输入完毕后必须调用close()方法关闭事先申明的输入流
输出流OUtputStream的write()方法可以向指定的文件输出内容,若指定文件不存在,程序会自行创建,其参数为整型或者整型数组,但不需要对输入流的内容进行强制类型转换,输出完毕后也应该调用close()方法关闭输出流
import java.io.OutputStream;
import java.io.InputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TestFileInputStream{
public static void main(String[] args){
InputStream in = null; //声明输入流
OutputStream out = null; //申明输出流
try{
in = new FileInputStream("d:\\lx\\ch11\\SystemInTest.java"); //设置读取的源文件
out = new FileOutputStream("d:\\lx\\ch11\\1.txt"); //只要路径正确,即使没有那个文件,运行时程序也会自行创建
}catch(FileNotFoundException o){
System.out.println("文件找不到,请重新确认");
System.exit(0);
}
try{
byte[] bs = new byte[512]; //设置读取字节流的单位
long number = 0;
int b = 0; //用以存取单位输入流的内容
while((b = in.read(bs)) != (-1)){ //此时read()的返回值为读进数组bs[]的字符数
for(byte B : bs){
System.out.print((char)B); //直接输出时必须强制转换,否则输出编码
// out.write(bs[i]); //写的时候不需要强制转换
}
out.write(bs); //直接将数组作为参数传给write()方法即可
//out.write(b);
// System.out.print((char)b); //当b = in.read()时可以直接输出
number++;
}
in.close(); //关闭输入流
out.close();
System.out.println("共读取"+number+"个512字节");
}
catch(IOException e){
System.out.println("not found!");
System.exit(0);
}
}
}