Java面試八股之Java中的IO流分為幾種

  1. Java中的IO流分為幾種

按數據單位分類:

字節流(Byte Stream):以字節(8位二進制數)為基本單位進行數據讀寫。字節流適合處理所有類型的數據,包括文本、圖像、音頻、視頻等二進制文件。抽象基類包括:

InputStream(字節輸入流)

OutputStream(字節輸出流)

具體的實現類如:FileInputStream、FileOutputStream、ByteArrayInputStream、ByteArrayOutputStream、BufferedInputStream、BufferedOutputStream等。

字符流(Character Stream):以字符(通常是16位Unicode字符)為基本單位進行數據讀寫,通常用于處理文本數據。字符流內部會自動處理字符編碼和解碼。抽象基類包括:

Reader(字符輸入流)

Writer(字符輸出流)

具體的實現類如:FileReader、FileWriter、CharArrayReader、CharArrayWriter、BufferedReader、BufferedWriter等。

按數據流向分類:

輸入流(Input Stream):數據從外部(如文件、網絡、鍵盤等)流向程序內部。

輸出流(Output Stream):數據從程序內部流向外部(如文件、網絡、顯示器等)。

按流的角色分類:

節點流(Node Stream / Device Stream):直接與數據源(如文件、網絡套接字、鍵盤、屏幕等)交互的流,如FileInputStream、FileReader等。

處理流(Wrapper Stream / Filter Stream):對其他已存在的流進行封裝,提供額外功能(如緩沖、加密、壓縮、格式化等)而不直接與數據源交互,如BufferedInputStream、BufferedReader、DataInputStream等。處理流通常采用裝飾器模式,可以動態地添加到節點流之上形成新的流對象。

按緩沖機制分類:

無緩沖流:每次讀寫操作都直接與數據源進行交互,可能會造成頻繁的系統調用,影響性能。

緩沖流(Buffered Stream):在流的讀寫操作中引入緩沖區,減少對數據源的直接訪問,提高數據讀寫效率。如BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter等。

?如果大家需要視頻版本的講解,歡迎關注我的B站:

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

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

相關文章

打破地域界限,HubSpot海外獲客系統引領企業走向國際化

在全球化的浪潮中,企業如何精準把握海外市場、高效獲取并轉化目標客戶,已成為決定其市場地位與未來發展的關鍵因素。HubSpot海外獲客系統以其獨特的視角、強大的功能和卓越的性能,正在引領全球營銷進入一個新的時代。今天運營壇將深入剖析Hub…

阿里巴巴找黃金寶箱(II) - 貪心思維

系列文章目錄 文章目錄 系列文章目錄前言一、題目描述二、輸出描述三、輸入描述四、java代碼五、測試用例 前言 本人最近再練習算法,所以會發布自己的解題思路,希望大家多指教 一、題目描述 一貧如洗的樵夫阿里巴巴在去砍柴的路上,無意中發…

KUKA機器人專業名詞解釋

1、CCU Cabinet Control Unit (控制柜控制單元) 2、CIB Cabinet Interface Board (控制柜接口板) 3、HMI Human Machine Interface (人機界面);KUKA.HMI 是 KUKA 操作界面。 4、KCB …

工作組PTH

文章目錄 簡述RID 500本地管理員密碼噴灑何為RIP 500 安全標識符SID與RIDPTH為何必須是RID 500CrackMapExec進行密碼噴灑 簡述 在工作組PTH中為什么只有administrator賬號可以,下面進行講解與利用。RID 500本地管理員密碼噴灑 何為RIP 500 安全標識符 安全標識符 安全標識符…

觸摸OpenNJet,云原生世界觸手可及

🌈個人主頁: Aileen_0v0 🔥熱門專欄: 華為鴻蒙系統學習|計算機網絡|數據結構與算法 ?💫個人格言:“沒有羅馬,那就自己創造羅馬~” 文章目錄 導言OpenNJet云原生引擎介紹云原生平臺的介紹優化與創新 為什么選擇OpenNJet云原生引擎如何在windo…

Pytorch基礎:torch.cuda.set_device函數

相關閱讀 Pytorch基礎https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 torch.cuda.set_device函數用于設置當前使用的cuda設備,在當擁有多個可用的GPU且能被pytorch識別的cuda設備情況下(環境變量CUDA_VISIBLE_…

【AI大模型】自動生成紅隊攻擊提示--GPTFUZZER

本篇參考論文為: Yu J, Lin X, Xing X. Gptfuzzer: Red teaming large language models with auto-generated jailbreak prompts[J]. arXiv preprint arXiv:2309.10253, 2023. https://arxiv.org/pdf/2309.10253 一 背景 雖然LLM在今天的各個領域得到了廣泛的運用…

計算方法實驗7:實現三次樣條插值算法

任務 point.txt文件中包含了21個壓鐵的位置信息 利用大M法計算出木條在壓鐵控制下的曲線,邊界條件取自然邊界條件;將第10個壓鐵的位置移動至(0,10),計算出新的曲線,觀察每個區間內的三次函數是否改變。 算法 μ i M i ? 1 2 …

MacOS java多版本安裝與管理

Home - SDKMAN! the Software Development Kit Manager # 安裝sdkman curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk version正常出現sdkman版本號就安裝成功了 # 安裝java # 安裝java8 sdk install java 8.0…

論文筆記:僅一個進程故障就無法達成共識

僅一個進程故障就無法達成共識 僅一個進程故障指的是在異步的分布式系統中 摘要 異步系統的共識問題(consensus)涉及一組進程,其中有的進程可能不可靠(unreliable)。共識問題要求可靠的進程一致地從兩個侯選中決定&…

【MATLAB源碼-第207期】基于matlab的單相光伏并網系統仿真,并網策略采用基于擾動觀測法的MPPT模型和使用電壓電流雙閉環SPWM控制。

操作環境: MATLAB 2022a 1、算法描述 本文將重點分析光伏發電最大功率點跟蹤(MPPT)技術和逆變器的并網控制技術,并在Simulink環境下建立模擬系統,以體現這些技術的應用與效果。文章結構如下:首先簡介光伏…

OpenAI下周發布更新;TikTok將自動標記AIGC;智譜AI亮相2024 ICLR

OpenAI 官宣下周舉辦直播發布更新 OpenAI 今日凌晨官宣,將在當地時間 5 月 13 日上午十點(北京時間 5 月 14 日凌晨兩點)在官網進行直播,屆時將演示一些 ChatGPT 和 GPT-4 的更新。 OpenAI CEO Sam Altman 補充表示,屆…

【算法刷題day44】Leetcode:518. 零錢兌換 II、377. 組合總和 Ⅳ

文章目錄 Leetcode 518. 零錢兌換 II解題思路代碼總結 Leetcode 377. 組合總和 Ⅳ解題思路代碼總結 草稿圖網站 java的Deque Leetcode 518. 零錢兌換 II 題目:518. 零錢兌換 II 解析:代碼隨想錄解析 解題思路 先遍歷物品,再遍歷背包。 代碼…

2024軟件測試面試必備面試題大全

1. 請自我介紹一下(需簡單清楚的表述自已的基本情況,在這過程中要展現出自信,對工作有激情,上進,好學) 面試官您好,我叫###,今年26歲,來自江西九江,就讀專業是電子商務,…

PCIE協議-2-事務層規范-MEM/IO/CFG request rules

2.2.7 內存、I/O和配置請求規則 以下規則適用于所有內存、I/O和配置請求。每種類型的請求還有特定的額外規則。 所有內存、I/O和配置請求除了常見的頭標字段外,還包括以下字段:requester ID[15:0]和Tag[9:0],形成事務ID。Last DW BE[3:0] a…

ICode國際青少年編程競賽- Python-2級訓練場-列表遍歷

ICode國際青少年編程競賽- Python-2級訓練場-列表遍歷 1、 for i in range(3):Flyer[i].step(2) Dev.step(6)2、 for i in range(7):Flyer[i].step() Dev.step(Item.x - Dev.x)3、 for i in range(3):Flyer[i].step(1) Dev.step(4) Dev.turnLeft() Dev.step(2) Dev.turnL…

【APM】在Kubernetes中搭建OpenTelemetry+Loki+Tempo+Grafana鏈路追蹤(一)

文章目錄 1、最終效果2、前提準備2、環境信息3、服務集成(Opentelemetry ->Tempo)3.1 上報鏈路數據3.1.1 下載opentelemetry-agent3.1.2 啟動配置業務app3.1.3 配置opentelemetry輸入輸出3.1.4 配置grafana datasource3.1.4.1 配置tempo3.1.4.2 配置l…

快速判斷出485從站設備是否支持MODBUS RTU無線通訊

對于變頻器和儀表設備,都支持485串口通訊,那么怎么判斷從站設備支持那種協議呢?通常分為兩種方式去判斷:1.從設備參數參看2.從設備通訊報文查看。本次文章以以臺達MH300系列變頻器為例。 1.從設備通訊參數查看 使用設備之前一定…

資料如何打印更省錢

在日常工作和學習中,我們經常需要打印各種資料。然而,隨著打印成本的不斷提高,如何更省錢地打印資料成為了大家關注的焦點。今天,就為大家分享一些資料打印的省錢技巧,并推薦一個省錢又省心的打印平臺。 首先&#xff…

【話題】軟件開發的航海圖:程序員的實用神器探秘

大家好,我是全棧小5,歡迎閱讀小5的系列文章,這是《話題》系列文章 目錄 背景一、代碼編寫二、版本控制三、測試與調試四、部署與運維五、總結文章推薦 背景 在軟件開發的廣闊海洋中,每一位程序員都是一位勇敢的航海家&#xff0c…