注册 登录
编程论坛 JAVA论坛

求姐!小弟,新手自学java基础,帮能我看看为什么拷贝完大小不一样?

zfl469948172 发布于 2016-02-11 13:13, 2722 次点击
import *;
class  CopyDemo
{
     public static void main(String[] args)
     {
          System.out.println("Hello World!");
      
          method_2();
     }

     //拷贝一个mp3文件
    public static void method_2()
    {
          FileInputStream fi= null;
          FileOutputStream fo= null;
          try
          {
               fi = new FileInputStream("积木.mp3");
               fo = new FileOutputStream("积木_copy.mp3");
               BufferedReader br = new BufferedReader(new InputStreamReader(fi));
               BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fo));
               String len = null;
               while((len = br.readLine())!=null)
               {
                    bw.write(len);
                    bw.newLine();
                    bw.flush();
               }

          }


          catch (IOException e)
          {
               throw new RuntimeException("读写失败");
          }


          finally
          {
               try
               {
                    if(fi!=null);
                    fi.close();
               }
               catch (IOException e)
               {
                   throw new RuntimeException("读入失败");
               }


               try
               {
                    if(fo!=null);
                    fo.close();
               }
               catch (IOException e)
               {
                   throw new RuntimeException("写入失败");
               }
  
          }

 
     }

}

 
3 回复
#2
紫月一殇雪2016-02-11 16:28
自己理解下 inputStream、outputStream和writer、reader之间的区别,这是两个不同的写入、读取方式
#3
大神密码2016-02-18 17:27
将BufferedReader改成BufferedInputStream,将BufferedWriter改成BufferedOutputStream。

因为mp3文件是字节流文件,而BufferedReader和BufferedWriter是用来操作字符流的。
1