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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© demown 中级黑马   /  2014-4-29 22:30  /  1017 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*需求:复制文件
  2. 思路:1,先创建一个文件。
  3.         2,在创建一个与要拷贝文件相关联的流。
  4.         3,在创建一个数组容器将文件内容读取到数组中,在讲数组中的内容写入到提前创建好的文件中
  5.         4,关闭流。
  6. */
  7. import java.io.*;
  8. public class IOLX1 {
  9.         public static void main(String[] ages)throws IOException       
  10.         {
  11.                 copy_2();
  12.         }
  13.         public static void copy_2()
  14.         {       
  15.                 FileReader fr = null;
  16.                 FileWriter fw = null;
  17.                 try
  18.                 {       
  19.                         fw = new FileWriter("abcde11.txt");
  20.                         fr = new FileReader("IOLX.java");
  21.                         char[] buff = new char[1024];
  22.                         int len=0;//定义一个变量,来描述读取的字符数。
  23.                         while((len=fr.read(buff))!=-1)
  24.                         {
  25.                                 fw.write(buff,0,len);
  26.                         }
  27.                 }
  28.                 catch(IOException e){throw new RuntimeException("读写失败");}
  29.                 finally
  30.                 {       
  31.                         if(fw!=null)
  32.                         {
  33.                         try
  34.                         {
  35.                                 fw.close();
  36.                         }
  37.                        
  38.                         catch(IOException e){throw new RuntimeException("路径不正确");}}
  39.                         if(fr!=null)
  40.                         {
  41.                                 try
  42.                                 {
  43.                                         fr.close();
  44.                                 }
  45.                        
  46.                                 catch(IOException e)
  47.                                 {throw new RuntimeException("没有这个文件");}
  48.                         }}
  49.         }

  50. }
复制代码
结果是这样的
Exception in thread "main" java.lang.RuntimeException: 读写失败
at IOLX1.copy_2(IOLX1.java:28)
at IOLX1.main(IOLX1.java:11)

当前目录有这个文件 看图 但是还是读取失败

QQ截图20140429222914.png (97.23 KB, 下载次数: 7)

这是我的当前目录

这是我的当前目录

6 个回复

倒序浏览
挺好的。加油
回复 使用道具 举报
你把我这段码贴上:
import java.io.*;

class  Demo
{
        public static void main(String[] args)
        {
               
                copy_2();
               
        }

     public static void copy_2(){        
                FileReader fr = null;
                FileWriter fw = null;

                try
                {        
                        fw = new FileWriter("abcde11.txt");
                        fr = new FileReader("IOLX.java");
                        char[] buff = new char[1024];
                        int len=0;
                        while((len=fr.read(buff))!=-1)
                        {
                                fw.write(buff,0,len);
                        }
                }
                catch(IOException e){
                                        throw new RuntimeException("读写失败");
                                }finally{        
                        if(fw!=null){
                                                        try{
                                fw.close();
                                                    }catch(IOException e){
                                                                throw new RuntimeException("路径不正确");
                                                        }
                                                }
                        if(fr!=null){
                             try{
                                 fr.close();
                             }catch(IOException e){
                                                                 throw new RuntimeException("没有这个文件");
                                                     }
                        }
                           }
        }

}


1、你下面都try了,上面主函数就不用throws了。
2、你下面代码有一处多了个“}”。
应该行了。

回复 使用道具 举报
文件的路径对了么?
代码看上去靠谱。
回复 使用道具 举报
纠结的。。好好学习视频
回复 使用道具 举报
看了一下你的代码应该没错 ! 我以前做的这题的时候就是路径错了   你改个绝对路径看看
回复 使用道具 举报
lren 初级黑马 2014-4-30 09:57:41
7#

  1. package fw.wei.demo;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. import java.io.OutputStreamWriter;

  9. public class CopyFile {

  10.         public static void main(String[] args) {
  11.                 copy();
  12.         }

  13.         public static void copy() {
  14.                 BufferedReader in = null;
  15.                 BufferedWriter out = null;
  16.                
  17.                 try {
  18.                         //初始化流
  19.                         in = new BufferedReader(new InputStreamReader(new FileInputStream("E:/CopyFile.java")));
  20.                         out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:/CopyFile.txt")));
  21.                        
  22.                         char[] buffer = new char[1024 * 5];
  23.                         int len = 0;
  24.                        
  25.                         //拷贝文件内容
  26.                         while((len = in.read(buffer)) != -1) {
  27.                                 out.write(buffer, 0, len);;
  28.                                 out.flush();
  29.                         }
  30.                 } catch (Exception e) {
  31.                         throw new RuntimeException(e);
  32.                 } finally {
  33.                         //关闭流
  34.                         if (in != null) {
  35.                                 try {
  36.                                         in.close();
  37.                                 } catch (IOException e) {
  38.                                         in = null;
  39.                                 }
  40.                         }
  41.                        
  42.                         if (out != null) {
  43.                                 try {
  44.                                         out.close();
  45.                                 } catch (IOException e) {
  46.                                         out = null;
  47.                                 }
  48.                         }
  49.                 }
  50.                
  51.         }
  52. }
复制代码

拷贝文件注意事项:
1、文件是否存在
2、文件路径是否正确
3、文件编码使用的是GBK,还是UTF-8(防止乱码情况发生)

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