------- android培训、java培训、期待与您交流! ----------
FileInputStream类和FileOutputStream类分别以字节为单位对文件进行读写操作,而且与字符流之间的区别是没有缓冲区,也就没有flush方法(OutputStream里的flush方法不执行任何操作)。字符流之所以有缓冲区,是因为一个汉字占2个字节。另外,FileInputStream类中特有的available方法可以取得当前位置到文件末尾共有多少个字节,可以由此创建一个与之大小相同的缓冲数组,进行一次性读入。
下面进行一个练习,把D盘下的一张图片进行拷贝:
import java.io.*;
public class PictureCopy {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("d:\\1.png");
fos = new FileOutputStream("d:\\1_copy.png");
byte[] buf = new byte[fis.available()];
fis.read(buf);
fos.write(buf);
} catch(IOException e) {
e.printStackTrace();
} finally {
if(fis != null)
try {
fis.close();
} catch(IOException e) {
System.out.println("源文件关闭失败");
}
if(fos != null)
try {
fos.close();
} catch(IOException e) {
System.out.println("副本文件关闭失败");
}
}
}
}