一、概述
IO即輸入輸出系統,java的IO總體可以分爲字符流(Reader、Writer)和字節流(InputStream、OutputStream)。
字節流直接對二進制數據進行操作;字符流在操作的時候使用了緩衝區(即內存)。
字節流一般用來對媒體文件操作,比如圖片;字符流一般可用來操作文本文件,如txt文件。
掌握javaIO需要掌握一個類(File)、一個接口(Serializable)和四個抽象類(Reader、Writer、InputStream、OutputStream)
二、JavaIO的整體結構
三、File類
File類是在整個java.io包中裏面唯一一個與文件本身有關的操作類,通過查看官方文檔Java PlatForm SE 8,可以看到File類一共提供了四種構造方法:
File(File parent, String child)
File(String pathname)
File(String parent, String child)
File(URI uri)
3.1、FIle類對文件的主要操作:
boolean createNewFile() 創建文件
boolean delete() 刪除文件
boolean exists() 判斷文件是否存在
public static void main(String[] args) throws IOException {
File file=new File("F://testFile.txt");
if (file.exists()){
file.delete();
}else {
file.createNewFile();
}
}
2.不同的操作系統之間路徑分隔符不同,因此可以使用File.separator代替分隔符
File file=new File("F:"+File.separator+"testFile.txt");
3.2、File類對目錄的主要操作
boolean mkdir() 創建單級目錄
boolean mkdirs() 創建多級目錄
String getParent() 以String方式獲取父目錄
File getParentFile() 以File方式獲取父目錄
當我們需要創建一個包含多級目錄的文件時,就可以使用上述的方法
public static void main(String[] args) throws IOException {
File file=new File("F:"+File.separator+"二級目錄"+File.separator+"testFile.txt");
if (!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
file.createNewFile();
}
3.3、對文件信息的操作
boolean canExecute() 判斷文件是否可執行
boolean canRead() 判斷文件是否可讀
boolean canWrite() 判斷文件是否可寫
String getAbsolutePath() 獲取文件絕對路徑
String getName() 獲取文件或目錄的名稱
boolean isDirectory() 判斷是否是目錄
boolean isFile() 判斷是否是文件
long lastModified() 最後修改時間
long length() 文件的大小
3.4、獲取文件目錄信息
String[] list() 返回所有子目錄的信息
File[] listFiles() 返回完整的路徑信息
public static void main(String[] args) throws IOException {
File file=new File("F:"+File.separator);
System.out.println(Arrays.toString(file.list()));
System.out.println(Arrays.toString(file.listFiles()));
}
通過遞歸的方式,我們可以找到某個路徑下的所有完整地址
public static void main(String[] args) throws IOException {
File file=new File("F:"+File.separator);
listDIR(file);
}
public static void listDIR(File file){
if (file.isDirectory()){
File[] result=file.listFiles();
if (result!=null){
for (int i = 0; i < result.length; i++) {
listDIR(result[i]);
}
}
System.out.println(file);
}
}
四、結論