File类有两个构造方法,File(父目录,文件名),关联指定的目录下指定名称的文件,File(文件名/目录名),关联某个文件名或者目录,这里的/表示的意思是“或者”。
比较好的方法是先用一个File对象关联一个目录名,然后创建这个目录,(mkdir()),再用构造方法构造一个文件。以下的代码是在“我的文档”里创建一个名为“1.txt”的文件。
File dir=new File("C:"+File.separator+"Documents and Settings"+File.separator+"Yxy"+File.separator+"My Documents"); //此处注意转义字符
dir.mkdir(); //创建目录
File file1=new File(dir,"1.txt");
file1.createNewFile(); //创建一个新文件
String[] str1=dir.list(); //下文说到的list()
//不知道为什么这里的空格硬是只能这么长,代码是我从我自己的代码里拷过来的,汗
//一个先
各位,其实这里可以用转义字符“\\”来代替File.separator,但是这不是一个好的习惯。为了实现Java的一次编译,四处运行的性感特点,我们需要一个通用的文件分隔符,因为各种操作系统下存在差异,比如linux的文件分隔符是正斜杠"/"。而File的特性separator正是获取当前操作系统下的文件分隔符。另,千万不要将让"\"单独存在,在代码中这是一个转义字符的标识,它会将接下来的一个字符理解为转义字符。
除了这种方法可以创建新的文件,还可以调用File类下的一个静态函数
File createTempFile(String prefix,String suffix,File directory),这是一个完整的版本,在指定的目录下创建一个以prefix为前缀名,suffix为后缀名的临时文件,通过deleteOnExit()来删除。但是还有一个精简的版本,
File createTempFile(String prefix,String suffix),没有指定目录,将在当前操作系统默认的临时文件夹里创建以prefix为前缀名,suffix为后缀名的临时文件。
以上是如何创建文件,接下来讲的是如何查阅目录下的文件和通过文件过滤器查找文件。
看到前面的代码里写到的list()方法了吗,返回一个String类型的数组,获取当前目录下的所有文件名,包括目录名(即文件夹)。但是,这样是不够的,无法找到我们所需要的文件,我们需要的是按我们的要求找到某个房间。Java.io包类提供类文件过滤器FileNameFilter,它是一个接口,内有方法boolean accept(File dir, String name),这是一个需要重写的方法,重写了这个方法之后,list(FileNameFileter f)方法可以列出符合我们要求的方法。
本文来源【学网】网站链接是http://www.xue5.com
Java中的separator,pathSeparator等常量- -
File.separatorChar 返回一个字符,表示当前系统默认的文件名分隔符,在Windows中为"\",unix中为"/"。
File.separator 与前者相同,但将分隔符作为字符串类型返回。
pathSeparatorChar 返回一个字符,表示当前系统默认的路径名分隔符,在Windows中为";",unix中为":"。
File.pathSeparator 与前者相同,但将分隔符作为字符串类型返回。
正文为JDKAPI帮助文档相关内容:
separatorChar
public static final char separatorCharThe system-dependent default name-separator character. This field is initialized to contain the first character of the value of the system property file.separator. On UNIX systems the value of this field is '/'; on Microsoft Windows systems it is '\'.
See Also:
System.getProperty(java.lang.String)
--------------------------------------------------------------------------------
separator
public static final String separatorThe system-dependent default name-separator character, represented as a string for convenience. This string contains a single character, namely separatorChar.
--------------------------------------------------------------------------------
pathSeparatorChar
public static final char pathSeparatorCharThe system-dependent path-separator character. This field is initialized to contain the first character of the value of the system property path.separator. This character is used to separate filenames in a sequence of files given as a path list. On UNIX systems, this character is ':'; on Microsoft Windows systems it is ';'.
See Also:
System.getProperty(java.lang.String)
--------------------------------------------------------------------------------
pathSeparator
public static final String pathSeparatorThe system-dependent path-separator character, represented as a string for convenience. This string contains a single character, namely pathSeparatorChar.