黑马程序员技术交流社区

标题: FileWriter 为什么不能创建多级目录 [打印本页]

作者: 夜班心桥    时间: 2015-3-14 23:31
标题: FileWriter 为什么不能创建多级目录
  1. class FileReaderWriterTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 FileReader fr = null;
  6.                 FileWriter fw = null;

  7.                 try
  8.                 {
  9.                         fr = new FileReader("f:\\demo.txt");
  10.                         fw = new FileWriter("f:\\test\\demo_copy.txt");

  11.                         char chs[] = new char[1024];
  12.                         int count = 0;

  13.                         while((count=fr.read(chs)) != -1)
  14.                         {
  15.                                 fw.write(chs, 0, count);       
  16.                         }
  17.                 }
  18.                 catch (IOException ex)
  19.                 {
  20.                         ex.printStackTrace();
  21.                 }
  22.                 finally
  23.                 {
  24.                         if(fr != null)
  25.                         {
  26.                                 try
  27.                                 {
  28.                                         fr.close();
  29.                                 }
  30.                                 catch (IOException ex)
  31.                                 {
  32.                                         ex.printStackTrace();
  33.                                 }
  34.                         }

  35.                         if(fw != null)
  36.                         {
  37.                                 try
  38.                                 {
  39.                                         fw.close();
  40.                                 }
  41.                                 catch (IOException ex)
  42.                                 {
  43.                                         ex.printStackTrace();
  44.                                 }
  45.                         }

  46.                 }
  47.         }
  48. }
复制代码


在这里,f盘下面有个demo.txt文件。并没有test这个文件夹,也没有demo_copy.txt文件。目的就是,将demo.txt的内容复制到test文件夹下面的demo_copy.txt中。为什么会提示: f:\test\demo_copy.txt (系统找不到指定的路径。)
如果在将目的地改为:f:\demo_copy.txt,这样就能复制成功。为什么吗?
作者: 奔跑的猴子    时间: 2015-3-15 01:47
这个问题有些搞笑了,没有为什么啊,因为本身就不会自动生成啊,按照你的需求,如果需要移动的话可以这么做:
File file = new File (“f:\test\demo_copy.txt”);
if(!(file.getParentFile().exists()))
       file.getParentFile().makdirs();
....................接下来复制就好了


作者: Jaybor    时间: 2015-3-15 11:05
本帖最后由 Jaybor 于 2015-3-15 11:08 编辑

要先有File对象你才能放,这和NullPointerException的原理一样;
作者: 夏鹏    时间: 2015-3-15 11:07
fileWrite 写文件的时候没有文件是可以自动创建的 可有个前提是在已存在的目录下
你参考下啊




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