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);
}