将****File readFrom=new File(dir,str2);更改成为
****File readFrom=new File(dir,str2.trim());
我也找了半天。

解决方案 »

  1.   

    确实比较奇怪。
    看代码好象没有什么问题。
    现在只好从System.out.println(str2);着手分析试试
    打印出str2的长度 ,看看是不是str2后面跟了什么字符
    或者将str2和“test.java”字符串进行比较,看是不是相同(str2.equals("test.java")),如果不同,就是str2的问题,要跟踪由read()读入的字符,如果相同,再看File(File aaa,String bbb)的具体文档解释。
      

  2.   

    其实这是StringBuffer到String转换的一个把细,你可以尝试用一下File readFrom=new File(dir,str2.trim());你要注意str2.length()比它实际的长度多1,也就是说str2最后还有一个空格
      

  3.   

    public class test
    {
    public static void main(String[] args) 
    {
    try
    {
    StringBuffer sb = new StringBuffer();

    char ch;
    while((ch=(char)System.in.read())!='\n')
    {
    System.out.println(ch);
    sb.append(ch);
    }
    System.out.println(sb.length());
    }
    catch(Exception e)
    {
    }
    }
    }
    你执行一下这段代码就清楚了其实是你while((ch=(char)System.in.read())!='\n')的时间将空格读进去了
      

  4.   

    D:\test>java test
    java
    j
    a
    v
    a5
      

  5.   

    "while((ch=(char)System.in.read())!='\n')的时间将空格读进去了"当用户输入时按回车就结束,为什么会把空格也读进去呢?
      

  6.   

    while((ch=(char)System.in.read())!='\r')你将\n换成\r吧,\n是换行,\r是回车返回
      

  7.   

    我没测试上边的例程,凭直觉认为多读入的应该是'\r',没道理是一个空格。
    在windows平台上,enter相当于'\r' + '\n'