import java.io.*;
public class TestNewFile
{
public static void main(String[] args)throws IOException
{

File file=new File("E:\\hao123.txt");  //修改成路径就对了,加上文件名就错了,如果改成路径,
                                        //以后想创建的文件的时候名字该往哪写?
file.createNewFile();


String[] s=file.list();
for(String ss:s)
{
System.out.println(ss);
}
}
}
我还想问个问题,为什么执行File file=new File("E:\\hao123.txt"); 完了之后没有创建txt文件,直到执行完file.createNewFile();才会创建成功?那第一句话是用来干嘛呢?

解决方案 »

  1.   

    你在File file = new File("E:\\hao123.txt");后面加上System.out.println(file.isFile());你就知道了,你的File file = new File("E:\\hao123.txt");只是new一个file对象,file对象可以是文件还可以是目录,现在你这个完全不是文件,file.createNewFile();这里才是真正的创建
      

  2.   

     String[] s=file.list();这句话是在某个目录下,得到所有的文件,而你的file是文件不是目录,所以得到为空,导致你会NullPointerException,除非你改为
    public static void main(String[] args)throws IOException
        {
            
            File file=new File("E:\\");  //修改成路径就对了,加上文件名就错了,如果改成路径,
                                                    //以后想创建的文件的时候名字该往哪写?
         //   file.createNewFile();
        
                
                String[] s=file.list();
                for(String ss:s)
                {
                    System.out.println(ss);
                }
        }
      

  3.   

    File(String pathname) 
    通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。 这里只是根据路径创建一个File实例而已,这个File实例是否存在还未知。
      

  4.   

    File file=new File("E:\\hao123.txt");这句只是创建了File对象,而File对象不代表实际的文件,只有执行了createNewFile()方法后才会创建实际的文件。至于代码的问题修改成路径之类的没看明白
      

  5.   

    File(String pathname) 
    通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。 这里只是根据路径创建一个File实例而已,这个File文件是否存在还未知。
      

  6.   

    我的理解:用file创建的分两种文件跟文件夹,只有是文件夹的时候.list才有数据,是文件的时候返回时null,所以报错,前面加个判断是否是目录的条件在.list
      

  7.   


    new 只是实例化对象。createNewFile();
    才是真正的创建文件 ~~~ 
    得分!
    快乐的飘过 ~