A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kj1989 中级黑马   /  2014-3-5 22:43  /  1589 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 kj1989 于 2014-3-10 21:02 编辑

在io流的学习中,遇到了文件的复制问题,本人有点晕 被写和读操作给绕晕了。想知道这两者之间是怎么联系在一起从而完成了整个文件的复制过程?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

4 个回复

倒序浏览
先用InputStream对取一个文件,读了就用OutPutStream写进去,晕了的话,你可以先分开做。再整合在一起。

  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;


  6. public class FileCopy {

  7.         public static void main(String[] args) throws IOException {
  8.                 File srcFile = new File("C:/Users/Administrator/Desktop/srcfile.txt");
  9.                 File destFile = new File("C:/Users/Administrator/Desktop/destfile.txt");
  10.                
  11.                 FileInputStream fis = new FileInputStream(srcFile);
  12.                 FileOutputStream fos = new FileOutputStream(destFile);
  13.                 byte[] buffer = new byte[1024];
  14.                 int len;
  15.                 while((len=fis.read(buffer))!=-1){
  16.                         fos.write(buffer, 0, len); //这里就是连接处
  17.                 }
  18.                
  19.         }

  20. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 艮昕辶 于 2014-3-6 19:29 编辑

:L怎么那个代码用不了  而且论坛怎么这么卡啊
回复 使用道具 举报
//核心函数是bufr.readLine()和bufw.write()
//一个读一个写就完成了文件的语句复制
import java.io.*;
class  BufferedReaderDemo
{
        public static void main(String[] args)throws IOException
        {
                BufferedReader bufr=null;
                BufferedWriter bufw=null;
                        try
                        {
                                bufr=new BufferedReader(new FileReader
                                        ("BufferedWriterDemo.java"));
                                bufw=new BufferedWriter(new FileWriter
                                        ("bufWriter_Copy.txt"));
                                String line=null;
                                while((line=bufr.readLine())!=null)
                                {
                                        bufw.write(line);

                                        bufw.flush();
                                }
                        }
                        catch (IOException e)
                        {
                                throw new RuntimeException("读取关闭失bai");
                        }
                        finally
                        {
                                try
                                {
                                        if(bufw!=null)
                                                bufw.close();
                                        if(bufr!=null)
                                                bufr.close();
                                }
                                catch (IOException e)
                                {
                                        throw new RuntimeException("读取关闭失败");
                                }
                        }
        }
}

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
字符流
     读取流
          FileReader   fr=new FileReader("要读取的文件");//fr.read();读取这个文件
     写入流
          FileWriter    fw=new FileWrider("要复制到哪里");//fw.write();把读到的内容写到目标文件
字节流
    读取流
       FileInputStream fi,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,fi.read();读取这个文件
    写入流
      FileOutputStream  fo,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,fo.write();把读到的内容写到目标文件

什么什么流 我自己起的 方便记忆识别 (可能不专业) 你可以参考参考

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马