输入/输出
?
一、File類:
1、定義:java.io包下表示與平臺無關的文件和目錄。也就是說希望在程序中操作文件和目錄,都可以通過File類來完成。
?
2、實例:
File file = new File("C:\\work\\gitdemo\\thirdTest\\b.txt"); try {//創建一個b.txt的文本文件 file.createNewFile(); } catch (IOException e) {e.printStackTrace(); } //返回file對象的所表示的文件名 System.out.println(file.getName()); // b.txt //返回絕對路徑(是一個File對象) System.out.println(file.getAbsoluteFile()); // C:\work\gitdemo\thirdTest\b.txt //返回file對象的所表示的絕對路徑名(是一個String字符串) System.out.println(file.getAbsolutePath()); // C:\work\gitdemo\thirdTest\b.txt?
3、常用的方法:
1、訪問文件相關的方法;public String getName() // 返回由此抽象路徑名表示的文件或目錄的名稱public String getPath() // 將此抽象路徑名轉換為一個路徑名字符串public String getParent() // 返回此抽象路徑名的父路徑名的路徑名字符串public String getAbsolutePath() // 返回抽象路徑名的絕對路徑名字符串public File getAbsoluteFile() // 返回抽象路徑名的絕對路徑2、文件檢測相關:public boolean exists() // 判斷此抽象路徑名表示的文件或目錄是否存在public boolean isFile() // 判斷此抽象路徑名表示的文件是否是一個標準文件public boolean isDirectory() // 判斷此抽象路徑名表示的文件是否是一個目錄public boolean isAbsolute() // 判斷此抽象路徑名是否為絕對路徑名public boolean canRead() // 判斷對應的文件或者目錄是否可讀public boolean canWrite() // 判斷對應的文件或者目錄是否可寫3、獲取常規文件信息:public long lastModified() // 返回文件的最后修改時間public long length() // 返回文件的內容長度4、文件操作相關方法:// 當且僅當不存在具有此抽象路徑名指定的名稱的文件時,原子地創建由此抽象路徑名指定的一個新的空文件 public boolean createNewFile() throws IOExceptionpublic boolean delete() // 刪除此抽象路徑名表示的文件或目錄public void deleteOnExit() // 在虛擬機終止時,請求刪除此抽象路徑名表示的文件或目錄5、目錄操作的方法:public boolean mkdir() // 創建此抽象路徑名指定的目錄public String[] list() // 返回由此抽象路徑名所表示的目錄中的文件和目錄的名稱所組成字符串數組public File[] listFiles() // 返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名所表示目錄中的文件?
?
二、IO流:
1、IO流一些概念的理解:
?
IO流理解:在java中把不同的輸入/輸出源(鍵盤、文件、網絡連接等)抽象為“流”(stream),java把所有傳統的流類型都放在了java.io包中;
? ? ? 輸入流:只能從中讀取數據,不能向其寫入數據;
? ? ? 輸出流:只能向其中寫入數據,不能從中讀取數據;
? ? ? 輸入輸出是從程序運行的內存的角度來劃分的,數據從內存到硬盤,通常稱為輸出流;
? ? ? 字節流:字節流操作的數據單元是8位的字節(1個字節);
? ? ? 字符流:字符流操作的數據單元是16位的字符(2個字節);
? ? ? 節點流:可以從/向一個特定的IO設備讀/寫數據的流,節點流也被稱為低級流;
? ? ? 處理流:對于一個已存在的流進行連接或封裝,通過封裝后的流來實現數據的讀/寫功能,處理流也被稱為高級流;
? ? ??
? ?
2、流的概念模型:
對于InputStream/Reader而言,它們把輸入設備抽象成一個“水管”,這個水管里的每個“水滴”依次排列,
輸入流使用隱式的記錄指針來表示當前正準備從哪個“水滴”開始讀取,每當程序從InputStream/Reader中
取出一個或者多個“水滴”后,記錄指針自動向后移動。
?
?
對于OutputStream和Writer而言,它們同樣把輸出設備抽象成一個“水管”,只是這個水管里沒有任何水滴,
當執行輸出時,程序相當于依次把“水滴”放入水管中。
?
3、FileInputStream類實例:
?
public static void main(String[] args) throws IOException{//創建字節輸入流FileInputStream file = new FileInputStream("C:\\work\\gitdemo\\thirdTest\\b.txt");//創建一個長度為1024的竹筒byte [] bytes = new byte[1024];//用于保存實際讀取的字節數int hasRead = 0;//使用循環來重復“取水”的過程while ((hasRead = file.read(bytes)) > 0){//取出“竹筒”中的水滴(字節),將字節數組轉換成字符串輸入System.out.println(new String(bytes,0,hasRead));//System.out.println(new String(bytes, "UTF8")); }//關閉文件輸入流、放在finally塊里更安全 file.close(); }?
4、OutInputStream類實例:
??
public static void main(String[] args) {try {//創建字節輸入流FileInputStream file = new FileInputStream("C:\\work\\gitdemo\\thirdTest\\b.txt");//創建字節輸出流FileOutputStream fos = new FileOutputStream("newFile.txt");byte [] bytes = new byte[32];int hasRead = 0;while ((hasRead = file.read(bytes)) > 0){//每讀取一次,即寫入文件輸出流,讀了多好,就寫多少fos.write(bytes,0,hasRead);}} catch (IOException e) { //java7改寫了所有的資源類,它們都實現了AutoCloseable接口,因此都可以通過自動關閉資源的try語句來關閉這些IO流。 e.printStackTrace();} }?
5、處理流使用實例:
?
public static void main(String[] args) {try {FileOutputStream fio = new FileOutputStream("bb.txt");PrintStream ps = new PrintStream(fio);//輸出字符串ps.println("hello 艾白羊");//輸出對象ps.println(new PrintStreamTetst());} catch (FileNotFoundException e) {e.printStackTrace();}}?
?
?
轉載于:https://www.cnblogs.com/aibaiyang/p/9153508.html
總結
- 上一篇: js 手机号加密 中间星号表示
- 下一篇: mysql下sql语句 update 字