Java IO學習筆記一
File
File
是文件和目錄路徑名的抽象表示形式,總的來說就是java創(chuàng)建刪除文件目錄的一個類庫贴浙,但是作用不僅僅于此砂吞,詳細見官方文檔
構造函數(shù)
File(File parent, String child)
根據(jù)parent
抽象路徑名和child
路徑名字符串創(chuàng)建一個新 File 實例。File(String pathname)
通過將給定路徑名字符串轉換為抽象路徑名來創(chuàng)建一個新 File 實例崎溃。File(String parent, String child)
根據(jù) parent 路徑名字符串和child
路徑名字符串創(chuàng)建一個新File
實例蜻直。File(URI uri)
通過將給定的file: URI
轉換為一個抽象路徑名來創(chuàng)建一個新的 File 實例。
實例
File file=new File("/tmp/demo"); //File(String pathname)
File file=new File("/tmp","demo"); //File(String parent, String child)
常用方法
字段
static String pathSeparator
與系統(tǒng)有關的路徑分隔符,通常是:static String separator
與系統(tǒng)有關的默認名稱分隔符概而,為了方便呼巷,它被表示為一個字符串。linux是/
File file=new File("/tmp"+File.separator+"demo"); //使用分隔符創(chuàng)建一個路徑
方法摘要
boolean canExecute()
測試文件或者目錄是否是可執(zhí)行的赎瑰,測試可執(zhí)行權限boolean canRead()
測試可讀權限boolean canWrite()
測試可寫權限boolean setExecutable(boolean executable)
設置文件或者目錄的執(zhí)行權限setExecutable(boolean executable, boolean ownerOnly)
設置執(zhí)行權限王悍,如果第二個為true那么只有創(chuàng)建這個文件的用戶擁有執(zhí)行權限boolean setReadable(boolean readable)
設置可讀的權限boolean setReadable(boolean readable, boolean ownerOnly)
同上boolean setReadOnly()
標記此抽象路徑名指定的文件或目錄,從而只能對其進行讀操作餐曼。boolean setWritable(boolean writable)
設置可寫的權限boolean createNewFile()
創(chuàng)建一個文件压储,這里創(chuàng)建的不是目錄boolean mkdir()
創(chuàng)建文件夾File getAbsoluteFile()
返回此抽象路徑名的絕對路徑名形式。String getAbsolutePath()
返回此抽象路徑名的絕對路徑名字符串源譬。String getName()
返回由此抽象路徑名表示的文件或目錄的名稱渠脉。boolean isDirectory()
測試此抽象路徑名表示的文件是否是一個目錄。boolean isFile()
測試此抽象路徑名表示的文件是否是一個標準文件瓶佳。boolean isHidden()
測試此抽象路徑名指定的文件是否是一個隱藏文件。String[] list()
返回一個字符串數(shù)組鳞青,這些字符串指定此抽象路徑名表示的目錄中的文件和目錄霸饲。File[] listFiles()
返回一個抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件臂拓。
實例
創(chuàng)建文件
File file=new File("/tmp/demo.txt");
if(file.exists())//如果文件存在就刪除這個文件
{
file.delete();
}
else
{
try{
file.createNewFile(); //創(chuàng)建一個文件
file.setExecutable(false); //設置執(zhí)行權限
}catch (IOException e)
{
e.printStackTrace();
}
}
創(chuàng)建文件夾
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
這個函數(shù)列出的是文件的名字并不是文件的路徑
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);
}