黑马程序员技术交流社区

标题: 我发现在面试中必考的题:io中的复制总结,及疑问 [打印本页]

作者: qingxi1    时间: 2014-8-7 14:34
标题: 我发现在面试中必考的题:io中的复制总结,及疑问
关于io中复制的相关疑问,我发现在学习io时遇到的问题,同时,我发现这道题在面试中必考啊!
关于文本的复制是字符流
import java.io.*;
class  CopyTextByBuf
{
public static void main(String[] args) throws IOException{
      BufferedReader bufr = null;
  BufferedWriter bufw = null;
  
  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.newLine();
   bufw.flush();
  }

  if(bufr!=null)
  bufr.close();
}
而关于mp3和pic文件多采取的是字节流:
import java.io.*;
class  Copy
{
public static void main(String[] args) throws IOException
{
  copy_1();
}
public static void copy_1() throws IOException
{
  BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("c:\\0.mp3"));//这个里面的0.MP3,我试了一下,可以换成0.bmp,同时我还用copyMp3。java试了一下,都成功了,
  BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("c:\\1.mp3"));//
  
  int by = 0;
  while((by=bufis.read())!=-1)
  {
   bufos.write(by);
  }
  bufos.close();
  bufis.close();
  
}
}
我在这里面尝试着把MP3文件改为了pic文件,并且成功了,这就像一个模板,我们以后写复制MP3和pic题目的时候,都可以用这个模板,这个时候我想既然字节流可以处理大多数的情况,我们知道一个字符是有两个字节组成,那么,为什么又会有字符流,字符流有什么特点和好处。
下面是关于复制的另一种形式,没有采用buffered这个缓冲区。
import java.io.*;
class  Copy2
{
public static void main(String[] args)
{
  FileOutputStream fos = null;
  FileInputStream fis = null;
   fos = new FileOutputStream("c:\\2.bmp");
   fis = new FileInputStream("c:\\1.bmp");
   byte[] buf = new byte[1024];
   int len = 0;
   while((len=fis.read(buf))!=-1)
   {
    fos.write(buf,0,len);
   }
  }
  
    if(fis!=null)
     fis.close();
   }
}

作者: 陶圣虎    时间: 2014-8-7 16:05
字符流主要用于处理文字文件,而且也有相对应的功能,所以可以根据处理的文件类型而选择字符流与字节流。根据是否需要提高效率而选择缓冲区。这个毕老师的视频里讲过的。
作者: 天黑偷牛    时间: 2014-8-7 16:19
总结的好
作者: Troy123    时间: 2014-8-7 18:05
多谢提醒
作者: yuli2039    时间: 2014-8-7 18:23
这个是必须掌握的。自己闭着眼睛要能敲出来
作者: 王洪涛    时间: 2014-8-7 18:31
恩 不错,不过毕老师的视频我还没有看到那里呢
作者: 何磊    时间: 2014-8-7 19:04
我才看到 数组,万里长征刚开始啊
作者: 思维    时间: 2014-8-7 19:25
不知道面试主要都考哪些敲代码的内容?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2