JAVA 中读取文件名(不包括文件的扩展名)  用lastIndexOf(".") 去截取的话,有些文件还是不行.象一些文件是读不出文件的扩展名的,这时会报错.请大家帮忙解决啊~~~ 有办法直接读取不包括扩展名的文件名吗??

解决方案 »

  1.   

    String name = ……;
    int dotPos = name.lastIndexOf('.');
    String mainName = dotPos < 0 ? name : name.sutstring(0, dotPos);
      

  2.   

    读不出扩展名的lastIndexOf(".") 的话,返回的是-1。应该可以判断的。
      

  3.   

    但是就像文件"text."这么个文件就有问题了 他是没有文件扩展名啊
      

  4.   

    嗯,这个就看你怎么看待了。
    还有linux下那些以“.”开头的文件名。
    没有什么标准规定扩展名到底是怎样,所有这种情况就看你自己的意愿了。封装一个独立的函数吧。
      

  5.   

    String name = ……;
    int dotPos = name.lastIndexOf('.');
    String mainName = (dotPos <= 0 || dotPos == name.length() - 1) ? name : name.substring(0, dotPos)
      

  6.   

    public static String getFileName(File file) {
            String filename = "";
            if (file != null) {
                filename = file.getName();
                int i = filename.lastIndexOf('.');
                if (i > 0 && i < filename.length() - 1) {
                    return filename.substring(0,i);
                }
            }        return filename;
        }
      

  7.   

    LS的程序在这种情况下就会有问题: abc.
      可改成这样:
      public static String getFileName(File file) {
            String filename = "";
            filename=file!= null?file.getName():"";
            int i = filename.lastIndexOf('.');
            filename=(i > 0 && i < filename.length())? filename.substring(0,i):filename
            return filename;
        }