文件的输入输出
流
在
计算机中,有三个地方用来存放
数据,缓存,内存,外存。我们
用计算机
时,他要把数据从外存中
读到内存,然后
在
读到缓存。在这个过程中,我们就要用到文件的输入输出流
。输出流
指
数据从内存到
外存
,输入指
数据从外存到
内存。这里有两个类
FileInputStream
和
FileOutputSream
文件的
输入流
是
可以根
据
一个
有效路径
创建
对象,这也是通常用的方法。他的方法
有
available
()
表示 读取后 或跳过后剩余的字节数,在此之前 我们调用它 可以得到文件的大小。close() 每一次使用完之后 我们都要 关掉 流。read(),这是 上面提到的 读数据的方法 ,每次 读一个 字节byte。skip(long n) 这是上面 提到的 跳过一些 数据的方法。
文件的输出流 ,我们可以根据一个 指定的文件路径 创建对象,这个文件路径最后 一级 可以不存在。这里面 一个写数据的方法 write(int b);write(byte[] b, int off, int len)后一个是 将数组 中下标为off 长度为 len 的 数据 写入到 文件中,还有一个继承的方法 flush 刷新,为了防止数据的丢失我们 通常调用它 ,强制刷新。这样我们就可以从一个文件中读取数据然后在写入到另一个文件中,这就是文件复制器。下面是文件复制器的代码。 package netjava.txc.ExceErr; public class CopyFile { //程序入口 public static void main(String args[] ){ //创建对象 CopyFile cf=new CopyFile(); String path ="F:\\MY\\2号文件\\Chesses.png"; String str ="F:\\MY\\2号文件\\ffgChesses.png"; cf.FileCopy(path, str); } public void FileCopy(String path,String str){ try{ // 创建 输入和输出流对象 java.io.FileInputStream fis = new java.io.FileInputStream(path); java.io.FileOutputStream fos=new java.io.FileOutputStream (str); // 得到 文件的长度、 int len = fis.available(); //读取数据 int i=fis.read(); while(i!=-1){ //装入数据 fos.write(i); //再读 i=fis.read(); System.out.println(i); } }catch(Exception e){ e.printStackTrace(); } } }