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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Demo_黑马 中级黑马   /  2016-5-23 14:51  /  830 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/** 在控制台录入文件的路径,将文件拷贝到当前项目下
                 *
                 * 分析:
                 * 1,定义方法对键盘录入的路径进行判断,如果是文件就返回
                 * 2,在主方法中接收该文件
                 * 3,读和写该文件*/



怎么解决啊??求大神指点...

7 个回复

倒序浏览
文件不存在异常,或是该文件存在,但是由于某些原因不可访问,比如试图打开一个只读文件进行写入,则此时这些构造方法仍然会抛出该异常。
回复 使用道具 举报
18735346124 发表于 2016-5-23 15:52
文件不存在异常,或是该文件存在,但是由于某些原因不可访问,比如试图打开一个只读文件进行写入,则此时这 ...

我把权限改了,但是还是不行...
回复 使用道具 举报
Demo_黑马 发表于 2016-5-23 16:07
我把权限改了,但是还是不行...

有代码吗?把代码压缩,看一下,或许是代码的问题
回复 使用道具 举报
18735346124 发表于 2016-5-23 16:56
有代码吗?把代码压缩,看一下,或许是代码的问题
  1. package com.heima.io;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.util.Scanner;

  10. public class Practice {

  11.         /**
  12.          * @throws IOException  
  13.          * @Title: main
  14.          * @Description: TODO(这里用一句话描述这个方法的作用)
  15.          * @param @param args    设定文件
  16.          * @return void    返回类型
  17.          * @throws
  18.          */

  19.         public static void main(String[] args) throws IOException {
  20.                  /** 在控制台录入文件的路径,将文件拷贝到当前项目下
  21.                  *
  22.                  * 分析:
  23.                  * 1,定义方法对键盘录入的路径进行判断,如果是文件就返回
  24.                  * 2,在主方法中接收该文件
  25.                  * 3,读和写该文件*/
  26.                 //2,在主方法中接收该文件
  27.                 File file = getFile();
  28.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
  29.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("555.txt"));
  30.                 byte[] arr = new byte[1024 * 8];
  31.                 int len;
  32.                 while ((len = bis.read(arr)) != -1) {
  33.                         bos.write(arr, 0, len);
  34.                 }
  35.                 //关流释放资源
  36.                 bis.close();
  37.                 bos.close();
  38.         }

  39.         public static File getFile() {
  40.                 //1,创建键盘录入对象
  41.                 Scanner sc = new Scanner(System.in);
  42.                 System.out.println("请输入文件路径:");
  43.                 while (true) {                       
  44.                         String line = sc.nextLine();
  45.                         //将接收到的路径封装成File对象
  46.                         File file = new File(line);
  47.                         //对键盘录入的路径进行判断,如果是文件就返回
  48.                         if (file.isFile()) {
  49.                                 System.out.println("对不起,您输入的是文件,请重新输入文件路径:");
  50.                         }else if (!file.exists()) {
  51.                                 System.out.println("对不起,您输入的文件路径不存在,请重新输入文件路径:");
  52.                         }else {
  53.                                 return file;
  54.                         }
  55.                 }
  56.         }
  57. }
复制代码
回复 使用道具 举报

回复 使用道具 举报

原来是这样啊,真是谢谢啦,大神!
回复 使用道具 举报
路过膜拜下大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马