Java IO学习笔记一
File
File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档
构造函数
File(File parent, String child)根据parent抽象路径名和child路径名字符串创建一个新 File 实例。File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。File(String parent, String child)根据 parent 路径名字符串和child路径名字符串创建一个新File实例。File(URI uri)通过将给定的file: URI转换为一个抽象路径名来创建一个新的 File 实例。
实例
File file=new File("/tmp/demo"); //File(String pathname)
File file=new File("/tmp","demo"); //File(String parent, String child)
常用方法
字段
static String pathSeparator与系统有关的路径分隔符,通常是:static String separator与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。linux是/
File file=new File("/tmp"+File.separator+"demo"); //使用分隔符创建一个路径
方法摘要
boolean canExecute()测试文件或者目录是否是可执行的,测试可执行权限boolean canRead()测试可读权限boolean canWrite()测试可写权限boolean setExecutable(boolean executable)设置文件或者目录的执行权限setExecutable(boolean executable, boolean ownerOnly)设置执行权限,如果第二个为true那么只有创建这个文件的用户拥有执行权限boolean setReadable(boolean readable)设置可读的权限boolean setReadable(boolean readable, boolean ownerOnly)同上boolean setReadOnly()标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。boolean setWritable(boolean writable)设置可写的权限boolean createNewFile()创建一个文件,这里创建的不是目录boolean mkdir()创建文件夹File getAbsoluteFile()返回此抽象路径名的绝对路径名形式。String getAbsolutePath()返回此抽象路径名的绝对路径名字符串。String getName()返回由此抽象路径名表示的文件或目录的名称。boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录。boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件。boolean isHidden()测试此抽象路径名指定的文件是否是一个隐藏文件。String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。File[] listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
实例
创建文件
File file=new File("/tmp/demo.txt");
if(file.exists())//如果文件存在就删除这个文件
{
file.delete();
}
else
{
try{
file.createNewFile(); //创建一个文件
file.setExecutable(false); //设置执行权限
}catch (IOException e)
{
e.printStackTrace();
}
}
创建文件夹
File file=new File("/tmp","test");
if(file.exists())
{
if(file.isDirectory()) //如果是一个文件夹
{
System.out.println("这是一个文件夹");
file.delete();
}
else if(file.isFile()) //如果是一个文件
{
System.out.println("这是一个文件");
}
}
else
{
file.mkdir();
file.setWritable(false); //设置权限为不可读
}
列出全部文件
list
这个函数列出的是文件的名字并不是文件的路径
File f=new File("d:"+File.separator);
String[] str=f.list(); //这里列出的仅仅是文件的名字,并不是文件的路径
for(String s:str){
System.out.println(s);
}
listFiles
这个列出的是文件的绝对路径
File f=new File("d:"+File.separator);
File[] files=f.listFiles();
for(File file:files){
System.out.println(file);
}