您好,登錄后才能下訂單哦!
今天小編給大家分享一下Java基礎知識之I/O流和File類文件操作方法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
I/O是Input和Output的縮寫,I/O技術是非常實用的技術,用于處理數據傳輸(如:讀/寫文件,網絡通信)
Java程序中,對于數據的輸入/輸出操作是以流(stream)的方式進行的
java.io包下提供了各種流(stream)類和接口,用以獲取不同種類的數據,并通過方法輸入和輸出數據。
文件流:文件在程序中是以流的形式操作的
輸入流:數據從數據源(文件)到程序(內存)的路徑
輸出流:數據從程序(內存)到數據源(文件)的路徑
按操作數據單位分為:字節流(二進制文件)、字符流(文本文件)
按數據的流向分為:輸入流、輸出流
按流的角色分為:節點流、處理流
抽象基類 | 字節流 | 字符流 |
---|---|---|
輸入流 | InputStream | Reader |
輸出流 | OutputStream | Writer |
??I/O的體系結構
什么是文件?
文件,對于我們并陌生,文件就是保存數據的地方,比如word文檔、txt文本、excel文件、圖片、視頻…等都是文件,操作系統中以文件為單位管理磁盤中的數據。從數據存儲角度來說,所有文件本質上都是一樣的,都是由一個個字節組成的歸根到底都是0-1比特串。
文件夾(目錄)
多個文件如果不分類放在一起,用戶使用起來就非常不方便,因此,又引入了樹形目錄(也叫文件夾)的機制,可以把文件放在不同的文件夾中,文件夾中還可以嵌套文件夾,這就便于用戶對文件進行管理和使用。
創建文件對象相關構造器和方法
new File(String pathname);//根據路徑構建一個File對象
new File(File parent,String child);//根據父目錄文件+子路徑構建
new File(String parent,String child);//根據父目錄路徑+子路徑構建
createNewFile();//創建新文件
在E盤下,用以上方式創建文件test01.txt\test02.txt\test03.txt
import java.io.File; import java.io.IOException; public class FileCreate { public static void main(String[] args) throws IOException { //方式1 String pathname = "e:\\test01.txt"; File file1 = new File(pathname); file1.createNewFile(); //方式2 File parentfile = new File("e:\\"); String child2 = "test02.txt"; File file2 = new File(parentfile, child2); file2.createNewFile(); //方式3 String parent = "e:\\"; String child3 = "test03.txt"; File file3 = new File(parent, child3); file3.createNewFile(); } }
獲取文件的相關信息
get.getName();//獲取文件名字
canRead();//文件是否可讀
canWrite();//文件是否可寫
getAbsoultePath();//獲取文件的絕對路徑
getPath();//相對路徑
getParent();//獲取文件父級目錄
lenth();//文件大小(字節)
exists();//判斷文件是否存在
isFile();//判斷是不是一個文件
isDirectory();//判斷是不是一個目錄
import java.io.File; public class FileInfomation { public static void main(String[] args) { //創建文件對象 File file = new File("e:\\test01.txt"); System.out.println("文件名字:" + file.getName()); System.out.println("文件是否可讀:" + file.canRead()); System.out.println("文件是否可寫:" + file.canWrite()); System.out.println("文件絕對路徑:" + file.getAbsolutePath()); System.out.println("文件大小(字節):" + file.length()); System.out.println("文件是否存在:" + file.exists()); System.out.println("是不是一個文件:" + file.isFile()); System.out.println("是不是一個目錄:" + file.isDirectory()); } }
文件比較
File f1=new File("D:\\test1.txt"); File f2=new File("D:\\test2.txt"); f1==f2;//比較的是兩個對象的地址 f1.equals(f2);//比較兩個對象對應的文件的路徑
目錄操作和文件刪除
mkdir();//創建單層目錄
mkdirs();//創建多層目錄
delete();//刪除目錄(這層目錄必須為空,沒有內容)
查看文件目錄
list();//返回一個字符串數組,命名由此抽象路徑名表示的目錄中的文件和目錄。
listFiles();//返回一個抽象路徑名數組,表示由該抽象路徑名表示的目錄中的文件。
案列:遍歷一個目錄下的所有文件打印輸出
public class PrintFile { public static void main(String[] args) { //創建文件對象 File file = new File("e:\\Test"); String[] list = file.list();//文件夾下目錄/文件對應的名字的數組 for (String s : list) { System.out.println(s); } File[] files = file.listFiles(); for (File f : files) { System.out.println(f.getName() + "," + f.getAbsolutePath()); } } }
遍歷目錄
1.給定一個文件對象file
2.listFiles()獲取該文件下的所有文件對象數組
3.遍歷File對象數組,如果是目錄,遞歸調用該方法獲取該目錄下的所有文件對象;如果是文件,打印輸出路徑+姓名
import java.io.File; public class PrintFile { public static void main(String[] args) { File file = new File("E:\\Code"); getAllFile(file); } public static void getAllFile(File file) { //獲取給定目錄下的所有File對象數組 File[] files = file.listFiles(); //開始遍歷 if (files != null) { for (File f : files) { if (f.isDirectory()) {//判斷是否為目錄,如果是,調用遞歸 getAllFile(f); } else {//不是,就打印路徑+文件名 System.out.println(f.getAbsoluteFile() + "下的:" + f.getName()); } } } } }
以上就是“Java基礎知識之I/O流和File類文件操作方法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。