Java,File類與IO流,File類與IO流的概述

File的概述:

·File定義在java.io包下。

·一個File對象代表硬盤或網絡中可能存在的一個文件或者文件目錄(俗稱文件夾),與平臺無關。

·File能新建、刪除、重命名文件和目錄,但File不能訪問文件內容本身。如果需要訪問文件內容本身,則需要使用輸入輸出流。

? ? ·File對象可以作為參數傳遞給流的構造器。

·想要在Java程序中表示一個真實存在的文件或目錄,那么必須有一個File對象,但是Java程序中的一個File對象,可能沒有一個真實存在的文件或目錄。

·File的對象,通常是作為io流操作的文件的端點出現的。

File類的構造器

public File(String pathname):以pathname為路徑創建File對象,可以是絕對路徑或相對路徑,如果pathname是相對路徑,則默認的當前路徑在系統屬性user.dir中存儲。

public File(String parent,String child):以parent為父路徑,以child為子路徑創建File對象。(參數parent一定是一個文件目錄,參數child可以是一個文件,也可以是一個文件目錄。)

public File(File parent,String child):根據一個父File對象和子文件路徑創建File對象。(參數parent一定是一個文件目錄,不能是一個代表文件的File對象。參數child可以是一個文件,也可以是一個文件目錄。)

文件路徑的表示方式:

方式①:絕對路徑:以windows操作路徑為例,包括盤符在內的文件或文件目錄的完整路徑。

方式②:相對路徑:相對某一個文件目錄來講的相對的位置。

?? ?? ? ·在idea中,如果使用單元測試方法:相對與當前的module(模塊)來講。

?? ?? ? ·如果使用main方法:相對與當前的project(項目)來講。

常用方法:

①獲取文件和目錄基本信息:

public?String?getName( ):獲取名稱。

public?String?getPath( ):獲取路徑。

public?String?getAbsolutePath( ):獲取絕對路徑。

public?File?getAbsoluteFile( ):獲取絕對路徑表示的文件。

public?String?getParent( ):獲取上層文件目錄路徑。若無,返回null?

public?long?length():獲取文件長度(即:字節數)。不能獲取目錄的長度。

public?long?lastModified( ):獲取最后一次的修改時間,毫秒值。

②列出目錄的下一級:

public String[ ] list( ):返回一個String數組,表示該File目錄中的所有的子文件或目錄。

public File[ ] listFiles( ):返回一個File數組,表示該File目錄中的所有的子文件或目錄。

③File類的重命名功能:

public boolean renameTo(File dest):把文件重命名為指定的文件路徑。若file1.rename(file2),要求:file1必須存在,且file2必須不存在,且file2所在的文件目錄需要存在。

④判斷功能的方法:

public?boolean?exists( ):此File表示的文件或目錄是否實際存在。

public?boolean?isDirectory( ):此File表示的是否為目錄。

public?boolean?isFile( ):此File表示的是否為文件。

public?boolean?canRead( ):判斷是否可讀。

public?boolean?canWrite( ):判斷是否可寫。

public?boolean?isHidden( ):判斷是否隱藏。

⑤創建、刪除功能:

public?boolean?createNewFile( ):創建文件。若文件存在,則不創建,返回false。

public?boolean?mkdir( ):創建文件目錄。如果此文件目錄存在,就不創建了。如果此文件目錄的上層目錄不存在,也不創建。

public?boolean?mkdirs( ):創建文件目錄。如果上層文件目錄不存在,一并創建。

public?boolean?delete( ):刪除文件或者文件夾。

刪除注意事項:①Java中的刪除不走回收站。②要刪除一個文件目錄,請注意該文件目錄內不能包含文件或者文件目錄。

IO流原理以及流的分類:

Java IO 原理:

Java中,對于數據的輸入輸出操作以“流(stream)”的方式進行,可以看作是一種數據的流動。

I/O流中的I、O是Input和Output的縮寫,用于處理設備間的數據傳輸。如讀寫文件,網絡通訊等。

? ? ·輸入(Input):讀取外部數據(磁盤、光盤等的存儲設備的數據)到程序(內存)中。

? ? ·輸出(Output):將程序(內存)數據輸出到磁盤、光盤等存儲設備中。

流的分類:

java.io包下提供了各種“流”類和接口,用以獲取不同種類的數據,并通過標準的方式輸入或輸出數據。

按數據的流向不同分為:輸入流和輸出流。

?? ?? ? ·輸入流:把數據從其他設備上讀取到內存中的流。

?? ??? ??? ?? ? ·以InputStream、Reader結尾。

?? ??? ?·輸出流:把數據從內存中寫出到其他設備上的流。

?? ??? ??? ?? ? ·以OutputStream、Writer結尾。

按操作數據單位的不同分為:字節流(8bit)和字符流(16bit)。

?? ?? ? ·字節流:以字節為單位,讀寫數據的流。

?? ??? ??? ?? ? ·以InputStream、OutputStream結尾。

?? ?? ? ·字符流:以字符為單位,讀寫數據的流。

?? ??? ??? ?? ? ·以Reader、Writer結尾。

按IO流的角色不同分為:節點流和處理流。

?? ?? ? ·節點流:直接從數據源或目的地讀寫數據。

?? ?? ? ·處理流:不直接連接到數據源或目的地,而是“連接”在已存在的流(節點流或處理流)之上,通過對數據的處理為程序提供更為強大的讀寫功能。

基礎IO流的框架:

抽象基類:

(抽象基類)

輸入流

輸出流

字節流

InputStream

OutputStream

字符流

Reader

Writer

四個節點流(文件流):

FileInputStream、FileOutputStream、FileReader、FileWriter

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163535.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163535.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163535.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用uniapp在微信小程序實現畫板(電子簽名)功能

目錄 一、效果展示 二、插件推薦與引入 三、代碼具體應用 四、h5端將base64轉換為url 一、效果展示 二、插件推薦與引入 手寫板、簽字板&#xff1b;<zwp-draw-pad /> - DCloud 插件市場 這個在微信小程序引入時內容簡單&#xff0c;且涉及的方法很多&#xff0c;…

【C/C++】排序算法代碼實現

這里&#xff0c;匯總了常見的排序算法具體代碼實現。使用C語言編寫。 排序算法實現 插入排序冒泡排序選擇排序快速排序希爾排序歸并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

Pinia狀態持久化——插件pinia-plugin-persistedstate

pinia-plugin-persistedstate 旨在通過一致的 API 為 Pinia Store 提供持久化存儲。如果希望保存一個完整的 Store&#xff0c;或者需要細粒化配置 storage 和序列化的方式&#xff0c;該插件都提供了相應的功能&#xff0c;并且可以在想要持久化的 Store 上使用相同的配置。 …

Python 異常的傳遞性

實例 這里就簡單用2個function來演示一下異常的傳遞性 func1 這里num 1/0明顯是一個ZeroDivisionError錯誤&#xff0c;作為演示 def func1():print("fun1 開始執行")num 1 / 0print("func1 結束執行") func2 def func2():print("func2 開始執…

tomcat國密ssl測試

文章目錄 程序包準備部署配置訪問測試 程序包準備 下載 tomcat8.5 https://www.gmssl.cn/gmssl/index.jsp 下載 tomcat 國密組件及證書 本次測試所有的程序文件均已打包&#xff0c;可以直接 點擊下載 部署配置 自行完成 完成centos 的jdk配置。 部署tomcat,將 gmssl4t.jar…

數字孿生農村供水工程平臺:為鄉村振興注入新活力

隨著科技的不斷進步&#xff0c;數字孿生技術逐漸成為各行業創新發展的重要驅動力。在水利領域&#xff0c;數字孿生農村供水平臺以其獨特的優勢&#xff0c;為農村供水系統帶來了革命性的變革。本文將為您詳細介紹數字孿生農村供水平臺的核心特點及優勢&#xff0c;帶您領略智…

深度學習常見激活函數:ReLU,sigmoid,Tanh,softmax,Leaky ReLU,PReLU,ELU整理集合,應用場景選擇

文章目錄 1、ReLU 函數&#xff08;隱藏層中是一個常用的默認選擇&#xff09;1.1 優點1.2 缺點 2、sigmoid 函數2.1 優點2.2 缺點 3、Tanh 函數3.1 優點3.2 缺點 4、softmax 函數&#xff08;多分類任務最后一層都會使用&#xff09;5、Leaky ReLU 函數5.1 優點5.2 缺點 6、PR…

mongo DB -- aggregate分組查詢后字段展示

一、分組查詢 在mongoDB中可以使用aggregate中的$group操作對集合中的文檔進行分組,但是查詢后的數據不顯示其他字段,只顯示分組字段 aggregate進行分組示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查詢后顯示 展開只顯示兩個字段 二、顯示所有字段…

APM工具skywalking部署

一 整體架構 整個架構&#xff0c;分成上、下、左、右四部分&#xff1a; 上部分 Agent &#xff1a;負責從應用中&#xff0c;收集鏈路信息&#xff0c;發送給 SkyWalking OAP 服務器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 數據信息。而我們目前采用的是&…

Rust - cargo項目里多個二進制binary crate的編譯運行

目錄 foo - Cargo.toml - src - - main.rs - - bin - - - other-bin.rs將除默認入口文件外待作為二進制crate處理的文件放在src/bin目錄下 方法一&#xff1a; 命令行增加配置項 --bin xxx cargo run --bin foo // 注意! 這里是包名&#xff0c;不是main cargo run --bin o…

SQL基礎理論篇(九):存儲過程

文章目錄 簡介存儲過程的形式定義一個存儲過程使用delimiter定義語句結束符存儲過程中的三種參數類型流控制語句 存儲過程的優缺點參考文獻 簡介 存儲過程Stored Procedure&#xff0c;SQL中的另一個重要應用。 前面說的視圖&#xff0c;只能勉強跟編程中的函數相似&#xff…

MySQL -- JDBC

1、JDBC是什么&#xff1a; 是SUN公司制定的一套接口(interface)。接口都有調用者和實現者。面向接口調用、面向接口寫實現類&#xff0c;這都屬于面向接口編程。 2、在使用JDBC的六個步驟&#xff1a; 1.注冊驅動&#xff08;告訴Java程序&#xff0c;即將連接的是哪個品牌…

業務系統上云后,如何滿足員工移動辦公快速訪問業務系統的需求?

在企業業務上云的大趨勢下&#xff0c;SaaS應用、云端辦公協同工具等多種遠程辦公應用系統開始大規模普及&#xff0c;企業員工可以隨時隨地訪問云上業務數據。然而現實情況卻十分“打臉”&#xff0c;企業隨時隨地要訪問云上業務的需求越迫切&#xff0c;問題就越大。由于多種…

算法通關村第十二關|白銀|字符串經典基礎面試題

1.反轉問題 1.1 反轉字符串 原題&#xff1a;力扣344. 要求原地修改。 public void reverseString(char[] s) {if (s null || s.length() 0) {return;}int n s.length;for (int left 0, right n - 1; left < right; left, right--) {char temp s[left];s[left] s…

小程序訂閱消息

wx.requestSubscribeMessage({tmplIds: [2IdqlWrqSbjAurzIuW8imeK-ftS8gbhYdZ0icdE],success(res) {console.log(res);// 處理用戶授權結果},fail(err) {console.error(err);// 處理授權請求失敗}});

白楊SEO:2B企業營銷是什么?當下主流的短視頻直播平臺有哪些?企業營銷要做短視頻直播選哪個平臺更好?

今天白楊SEO就正式來講講2B企業營銷選擇哪個短視頻直播平臺更好&#xff1f; 圖片在公眾號&#xff1a;白楊SEO上看。 文章大綱提前看&#xff1a; 1、先說說2B企業營銷是什么&#xff1f; 2、當下主流的短視頻直播平臺有哪些&#xff1f; 3、2B企業營銷要做短視頻直播選哪…

重磅!1區、60年老牌期刊被踢?共5本被剔除!11月SCIE/SSCI期刊目錄更新!

期刊動態&#xff1a;2023年11月SCI、SSCI期刊目錄更新 2023年11月20日&#xff0c;科睿唯安更新了WOS期刊目錄&#xff0c;繼上次10月WOS期刊目錄剔除7本SCIE&SSCI期刊之后&#xff0c;此次11月更新又有5本期刊發生變動&#xff0c;其中有4本SCIE期刊被剔除&#xff0c;1…

Postgresql根據兩表相同字段更新其中一個表的其他數據

有兩個表 table1&#xff08;id,pcode,pname,type&#xff09; 初始數據只有id、pcode&#xff0c;pname、type為空table2&#xff08;id,pcode,pname,type&#xff09; 根據table1和table的相同字段pcode&#xff0c;用table2的數據更新table1的pname和type字段。 例如&…

微信運營神器:從群發到批量添加,讓你的微信營銷更輕松

在這個數字化時代&#xff0c;微信已經成為了我們生活中不可或缺的一部分。對于許多企業和個人來說&#xff0c;微信營銷也是非常重要的一部分。但是&#xff0c;微信營銷并不是一件容易的事情&#xff0c;需要花費大量的時間和精力。為了解決這個問題&#xff0c;今天我們將向…

Linux本地MinIO存儲服務遠程調用上傳文件

&#x1f525;博客主頁&#xff1a; 小羊失眠啦. &#x1f3a5;系列專欄&#xff1a;《C語言》 《數據結構》 《Linux》《Cpolar》 ??感謝大家點贊&#x1f44d;收藏?評論?? 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;…