你这段代码没有错误吗?
if (dir.isFile())
{
System.out.print(dir.canRead()+"是文件");

else
System.out.println("不是文件!"+dir.getName());
}}}
上边一段大括号写错了

解决方案 »

  1.   

    稍微给你的程序改了改,可以用了!
    import java.io.*;
    class p180{
    public static void main(String args[]){
    char ch;
    System.out.println("请输入路径:");
    try{

        BufferedReader in1 = new BufferedReader(new InputStreamReader(System.in));
        String a = in1.readLine();
                File dir=new File(a);
                
        if (dir.isDirectory())
        {
        System.out.print(dir.getAbsolutePath()+"是目录");
        }
        else if (dir.isFile()) System.out.println("是文件!"+dir.getName());
        else System.out.println(dir.toString()+" is not exist!");
    }catch(IOException e){
    System.err.println(e);
    }
            }
    }
    输入目录的时候,跟dos下输入目录相同,注意如果输入不存在的目录和文件,将报不存在!
      

  2.   

    因为当输入E:\A\A.TXT时
    字符串a的值是E:\A\A.TXT(\r)(多了一个回车符)
    改成
    String a=st.toString();
                      a = a.substring(0, a.length() - 1);
    File dir=new File(a);
    即可
      

  3.   

    或者把
    while(( ch=(char)System.in.read())!='\n'){
    改成
    while(( ch=(char)System.in.read())!='\r'){
    也行