Java IO流(基礎詳解,快速上手!)

您所在的位置:网站首页 法语26个字母的音标 Java IO流(基礎詳解,快速上手!)

Java IO流(基礎詳解,快速上手!)

#Java IO流(基礎詳解,快速上手!)| 来源: 网络整理| 查看: 265

文章目錄 概述什么是IO流?常用的文件操作獲取文件操作目錄操作 IO流的原理和分類

概述

在Java的學習中,文件和IO流是一個十分重要的板塊。在Java中,File是文件和目錄路徑名的抽象表示。文件和目錄可以通過File封裝成對象。對File而言,其封裝的並不是一個真正存在的文件,僅僅只是一個路徑名而已,他可以是存在的也可以是不存在的。將徠是要通過具體操作把這個路徑的內容轉化為具體存在的。

什么是IO流?

IO流也叫文件流。其實就是計算機調度把各個存儲中(包括內存和外部存儲)的數據寫入寫出的過程(通過IO可以完成硬盤文件的讀和寫)

I:input(輸入)O:Output(輸出)

文件在程序中是以流的形式操作的(文件是保存數據的地方)

在這裏插入圖片描述

輸入流:數據從數據源(文件)到程序(內存)的路徑輸出流:數據從程序(內存)到數據源(文件)的路徑 常用的文件操作

根據路徑構建一個File對象

new File(String pathname);

根據

父目錄文件

+

子路徑

父目錄文件+子路徑

父目錄文件+子路徑 構建

new File(File parent, String child);

根據

父目錄

+

子路徑

父目錄+子路徑

父目錄+子路徑 構建

new File(String parent, String child);

createNewFile方法 創建新文件 將內存的File寫入到硬盤中,如果命名文件不存在且已成功創建,則此方法返回 true。 如果文件存在,該方法返回 false。

官方文檔(采用JD8版本)

中文 在這裏插入圖片描述

English 在這裏插入圖片描述

File實現了Serializable(串行化)和Comparable(比較)兩個接口 一個類實現了 Comparable 接口,意味著該類的對象可以直接進行比較

演示

方式1 new File(String pathname);

import java.io.File; import java.io.IOException; @Test public void create01(){ String filePath = "E:\\text.txt"; File file = new File(filePath); try { file.createNewFile(); } catch (IOException e) { e.getMessage(); } System.out.println("文件創建成功"); }

此時E盤下會出現text文件

方式2 new File(File parent, String child); 父目錄文件+子路徑

@Test public void create02(){ File parentfile = new File("E:\\"); String fileName = "text2.txt"; File file = new File(parentfile, fileName); try { file.createNewFile(); } catch (IOException e) { e.getMessage(); } }

此時E盤下會出現text2文件

方式3 new File(String parent, String child); 父目錄+子路徑

@Test public void create03(){ String parentPath = "E:\\"; String filePath = "text3.txt"; File file = new File(parentPath, filePath); try { file.createNewFile(); } catch (IOException e) { e.getMessage(); } }

此時E盤下會出現text3文件

注意:路徑也可也用 / 這個,只不過用 \ 的時候需要在加上一個(轉義字符)

獲取文件操作

基本的常用方法(並不是全部)

getName 獲取文件的名字getAbsolutePath 獲取文件的絕對路徑getParent 獲取文件的父級目錄length 獲取文件的大小exists 文件是否存在ifFile 是否是一個文件(File)isDirectory 文件是否是目錄

更多方法可在JDK文檔或百度進行查看

演示

@Test public void info(){ //先創建文件對象 File file = new File("E:\\text1.txt"); //調用相應的方法 System.out.println("文件名字:"+file.getName()); System.out.println("文件絕對路徑:"+file.getAbsolutePath()); System.out.println("文件父級目錄:"+file.getParent()); System.out.println("文件大小(字節):"+file.length()); System.out.println("文件是否存在:"+file.exists()); System.out.println("是否存在:"+file.isFile()); System.out.println("文件是否為目錄:"+file.isDirectory()); }

輸出:

文件名字:text1.txt 文件絕對路徑:E:\text1.txt 文件父級目錄:E: 文件大小(字節):11 文件是否存在:true 是否存在:true 文件是否為目錄:false

目錄操作 mkdir 創建一級目錄mkdirs 創建多級目錄delete 刪除空目錄或文件

刪除文件(目錄),返回的是一個布爾值,成功為true,失敗為false

import java.io.File import org.junit.jupiter.api.Test; @Test public void m1(){ String filePath = "E:\\text1.txt"; //String filePath = "E:\\text";//刪除text目錄同理 File file = new File(filePath); file.delete(); }

E盤下的text.txt文件被刪除

創建一級目錄(mkdir)

@Test public void m2(){ String filePath = "E:\\text"; File file = new File(filePath); file.mkdir(); }

此時E盤會出現text目錄

創建多級目錄(mkdirs)

@Test public void m2(){ String filePath = "E:\\text\\text2\\text3"; File file = new File(filePath); file.mkdirs(); }

IO流的原理和分類 I/O是Input/Output的縮寫,I/O技術是非常實用的技術,用於處理數據傳輸(如讀/寫文件,網絡通信等)Java程序中,對於數據的輸入 / 輸出操作以 “流(stream)” 的方式進行Java.io 包下提供了各種 “流” 類和接口,用以獲取不同種類的數據,並通過方法輸入或輸出數據

輸入input:讀取外部數據(磁盤、光盤、數據庫、網絡等存儲設備的數據)到程序(內存)中輸出output:將程序(內存)數據輸出到磁盤、光盤等存儲設備中

在這裏插入圖片描述 分類

按操作數據單位不同分為:字節流(8bit)二進制文件,字符流(按字符,一個字符對於多少個字節和編碼有關)文本文件按數據流的流向不同分為:輸入流、輸出流 字節流主要是由InputStream和outPutStream作為基類,而字符流則主要有Reader和Writer作為基類。 按流的角色的不同分為:節點流、處理流/包裝流 可以從/向一個特定的IO設備(如磁盤,網絡)讀/寫數據的流,稱為節點流。處理流則用於對一個已存在的流進行連接和封裝,通過封裝後的流徠實現數據的讀/寫功能。

在這裏插入圖片描述

InputStreamOutputStreamReaderWriter

以上四個均為抽象類(abstract),在使用的時候要去創建它們的實現子類!

在Java的IO流共涉及40多個類,實際上非常規則,都是從以上四個抽象基類派生的 由這四個類派生出徠的子類名稱都是以其父類名作為子類的後綴名 在這裏插入圖片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3