不对吧?File对象是不会象FileOutputStream这种默认可以创建文件的,它必须显示的创建文件(createNewFile()),根本不会生成文件嘛...没有真正的文件或文件夹,怎么if判断最后都没用....

解决方案 »

  1.   

    请在
      File dir = new File(stfDir.toString());之后加一句:
      if (dir.mkdirs()) {System.out.println("Create!");}
    这样才会建立目录,当然输入路径是要这样吧。
    c:\test\
    注意最后一个“\”
      

  2.   

    if( !file.exists() ){
        file.createNewFile();
    }
    目录也差不多,加个这样的判断
    万无一失:)
      

  3.   

    kofwr(搭补流二)说的是对的。
      

  4.   

    你好,收到你的短信,看看这是不是你要问的? while( (ch = (char)System.in.read()) != '\r' )//这里你原来是\n,下面用对了,这里怎么错了?上下不一样?:)
      {
        stfDir.append(ch);
      }
      //创建目录文件对象
      File dir = new File(stfDir.toString());  System.out.println("输入文件名称:");
      StringBuffer stfFilename = new StringBuffer();
      while((ch = (char)System.in.read())!='\r')
       {
         stfFilename.append(ch);
       }你可以考虑一下用bufferedreader的readline方法,不用这么麻烦的。
      

  5.   

    你把
    File readFrom = new File(stfDir.toString(),stfFilename.toString());
    改成
    File readFrom = new File(stfDir.toString().trim(),stfFilename.toString().trim());
    看看
      

  6.   

    谢谢各位的回答问题己解决:每次输入时都以\r\n结束第一次读时需要去除\r\n。
    jcq的办法可行。
    也可以:
    while( (ch = (char)System.in.read()) != '\r' )
      {
        stfDir.append(ch);
      }
    System.in.read();//读\n