Java輸入輸出流詳細解析

Java I/O(輸入/輸出)主要被用來處理輸入數據和輸出結果。

在Java中,輸入/輸出操作被當作流(Stream)進行處理。流是一個連續的數據流入或數據流出的通道。流操作在Java中主要可以分為兩種類型:字節流和字符流。

Java輸入輸出流

一、字節流

字節流可以處理所有類型的數據(如圖片,視頻,音頻等)。在Java的java.io包中,包含了所有操作輸入/輸出的類和接口。這些類和接口均被設計為字節流形式。

字節流的兩個基類是:

  • InputStream:所有的字節輸入流類都是這個類的子類
  • OutputStream:所有的字節輸出流類都是這個類的子類。

以下是一個使用字節流讀取數據的例子:

import java.io.*;public class TestByteStream {public static void main(String args[]) {try {byte bWrite[] = {11,21,3,40,5};OutputStream os = new FileOutputStream("test.txt");for (int i = 0; i < bWrite.length; i++) {os.write(bWrite[i]); }os.close();InputStream is = new FileInputStream("test.txt");int size = is.available();for (int i = 0; i < size; i++) {System.out.print((char) is.read() + " "); }is.close();} catch (IOException e) {System.out.println("Exception: " + e);} }
}

二、字符流

相對于字節流,字符流處理的是字符數據,專門用于處理文本(String,char等)。字符流的基類是Reader和Writer。

  • Reader:所有的字符輸入流類都是這個類的子類。
  • Writer:所有的字符輸出流類都是這個類的子類。

以下是一個使用字符流讀取數據的例子:

import java.io.*;public class TestCharStream {public static void main(String args[]) throws IOException {char c[] = new char[30];Reader read = new FileReader("test.txt");int len = read.read(c);System.out.println("從文件中讀取的字符數 : " + len);for (int i = 0; i < len; i++) {System.out.print(c[i]);}read.close();}
}

在處理輸入/輸出流時,需要注意的是,系統不會自動關閉流,需要我們手動調用close()方法來關閉流,防止出現數據的丟失。

通過以上的介紹,希望你對Java中的輸入/輸出流有了更多的了解。在Java編程中,合理地使用這兩種流能夠提高我們代碼的效率和健壯性。

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

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

相關文章

基于ssm疫情期間高校防控系統+vue論文

摘 要 傳統信息的管理大部分依賴于管理人員的手工登記與管理&#xff0c;然而&#xff0c;隨著近些年信息技術的迅猛發展&#xff0c;讓許多比較老套的信息管理模式進行了更新迭代&#xff0c;學生信息因為其管理內容繁雜&#xff0c;管理數量繁多導致手工進行處理不能滿足廣大…

‘conda‘ 不是內部或外部命令,也不是可運行的程序 或批處理文件

如果你在運行 conda 命令時收到了 ‘conda’ 不是內部或外部命令&#xff0c;也不是可運行的程序或批處理文件。 的錯誤消息&#xff0c;這可能意味著 Anaconda 并沒有正確地添加到你的系統路徑中。 1.你可以嘗試手動添加 Anaconda 到系統路徑中。以下是在 Windows 系統上添加…

19.2 DeepMetricFi:基于深度度量學習改進Wi-Fi指紋定位

P. Chen and S. Zhang, "DeepMetricFi: Improving Wi-Fi Fingerprinting Localization by Deep Metric Learning," in IEEE Internet of Things Journal, vol. 11, no. 4, pp. 6961-6971, 15 Feb.15, 2024, doi: 10.1109/JIOT.2023.3315289. 摘要 Wi-Fi RSSI指紋定位…

C++內存泄漏:原因、預防、定位

內存泄漏是 C 中常見的問題之一&#xff0c;可能導致程序運行時資源消耗過大、性能下降&#xff0c;甚至程序崩潰。 內存泄漏的原因 1. 未釋放動態分配的內存 在 C 中&#xff0c;通過 new 操作符分配的內存需要手動使用 delete 操作符進行釋放。如果忘記或者由于某種原因未…

調用“每日詩詞”在你的頁面添加一句詩

概述 前幾天瀏覽網站的時候看到頁面上有句詩&#xff0c;打開調試看了下調用的是“每日詩詞”的SDK。本文基于此SDK實現你的頁面添加一句詩。 實現效果 實現 1. 引入SDK <script src"https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset"utf-…

mysql服務治理

一、性能監控指標和解決方案 1.QPS 一臺 MySQL 數據庫&#xff0c;大致處理能力的極限是&#xff0c;每秒一萬條左右的簡單 SQL&#xff0c;這里的“簡單 SQL”&#xff0c;指的是類似于主鍵查詢這種不需要遍歷很多條記錄的 SQL。 根據服務器的配置高低&#xff0c;可能低端…

【BUUCTF web】通關 2.0

&#x1f36c; 博主介紹&#x1f468;?&#x1f393; 博主介紹&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高興認識大家~ ?主攻領域&#xff1a;【滲透領域】【應急響應】 【Java】 【VulnHub靶場復現】【面試分析】 &#x1f389;點贊?評論?收藏 …

MAC-鍵盤command快捷鍵、設置windows快捷鍵

在 Windows PC 專用鍵盤上&#xff0c;請用 Alt 鍵代替 Option 鍵&#xff0c;用 Ctrl 鍵或 Windows 標志鍵代替 Command 鍵。 Mac 鍵盤快捷鍵 - 官方 Apple 支持 (中國) 設置windows快捷鍵 使用mac外接適用于windows的鍵盤時&#xff0c;如何設置快捷鍵&#xff1f;_mac外…

2024年2月國內如何快速注冊OnlyFans最新小白教學

前言 onlyface軟件是一個創立于2016年的訂閱式社交媒體平臺&#xff0c;創作者可以在自己的賬號發布原創的照片或視頻&#xff0c;并將其設置成付費模式&#xff0c;若用戶想查看則需要每月交費訂閱。 需要注意的是&#xff0c;網絡上可能存在非法或不道德的應用程序&#xff…

Java:性能優化細節31-45

Java&#xff1a;性能優化細節31-45 31、合理使用java.util.Vector 在使用java.util.Vector時&#xff0c;需要注意其性能特性和最佳實踐&#xff0c;以確保應用程序運行高效。Vector是一個同步的集合類&#xff0c;提供了動態數組的實現。由于它是線程安全的&#xff0c;所以…

獲取當前數據 上下移動

點擊按鈕 上下移動 當前數據 代碼 // 出國境管理 登記備案人員列表 <template><a-row><a-col span"24"><a-card :class"style[a-table-wrapper]"><!-- 出國境 登記備案人員列表 --><a-table:rowKey"records >…

淘寶開放平臺獲取商家訂單數據API接口接入流程

taobao.custom 自定義API操作 接口概述&#xff1a;通過此API可以調用淘寶開放平臺的API&#xff0c;通過技術對接&#xff0c;您可以輕松實現無賬號調用官方接口。進入測試&#xff01; 公共參數 名稱類型必須描述keyString是調用key&#xff08;必須以GET方式拼接在URL中&…

通過修改host文件來訪問GitHub

前言&#xff1a; 由于國內環境的原因&#xff0c;導致我們無法流暢的訪問GitHub&#xff0c;。 但是我們可以采取修改host文件來實現流暢訪問。 缺點&#xff1a;需要不定時的刷新修改。 操作流程 一、查詢IP地址 以下地址可以查詢ip地址 http://ip.tool.chinaz.com/ htt…

pugixml使用

pugixml 使用pugixml庫需要三個文件:pugiconfig.hpp pugixml.cpp pugixml.hpp pugixml.hpp代碼添加在最后。 全是代碼 寫入文件-使用實例&#xff1a; #include "../pugixml/pugixml.hpp"//2024.2.29 add 寫入參數值到文件中 void MainFrame::SaveBrg(CString Path) …

C++從零開始的打怪升級之路(day40)

這是關于一個普通雙非本科大一學生的C的學習記錄貼 在此前&#xff0c;我學了一點點C語言還有簡單的數據結構&#xff0c;如果有小伙伴想和我一起學習的&#xff0c;可以私信我交流分享學習資料 那么開啟正題 今天分享的是關于繼承的知識點 1.繼承的概念及定義 1.1繼承的概…

JDK時間

Date 全世界的時間&#xff0c;有一個統一的計算標準。 世界標準時間&#xff1a;格林尼治時間/格林威治時間簡稱GMT&#xff0c;目前時間標準時間已經替換為&#xff1a;原子鐘。 中國標準時間&#xff1a;世界時間8 時間換算單位&#xff1a; 一秒等于一千毫秒 一毫秒等于一…

CDC作業歷史記錄無法刪除問題

背景 數據庫開啟CDC功能后&#xff0c;每天會生成大量的歷史記錄&#xff0c;即使達到參數“每個作業的最大歷史記錄“的閾值后也不會被刪除&#xff0c;導致其它作業的歷史記錄被刪除&#xff0c;無法查看以前的執行情況&#xff0c;非常不方便。 現象 數據庫開啟CDC后會創建…

【MATLAB源碼-第147期】基于matlab的QPSK調制解調在AWGN信道,瑞利信道,萊斯信道理論與實際誤碼率對比仿真。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 四相位移鍵控&#xff08;QPSK&#xff0c;Quadrature Phase Shift Keying&#xff09;是一種重要的數字調制技術&#xff0c;它通過改變信號的相位來傳輸數據。與其他調制技術相比&#xff0c;QPSK在相同的帶寬條件下能夠傳…

Linux命名管道

Linux匿名管道-CSDN博客 目錄 1.原理 2.接口實現 3.模擬日志 Linux匿名管道-CSDN博客 這上面叫的是匿名管道&#xff0c;不要將兩者搞混&#xff0c;匿名管道說的是兩個有血緣關系的進程相互通信&#xff0c;但是命名管道就是兩個沒有關系的管道相互通信。 1.原理 和匿名…

高斯擴散過程

高斯擴散過程是一種數學模型&#xff0c;用于描述某些隨機現象的時間演化&#xff0c;其中這些現象的概率密度函數&#xff08;PDF&#xff09;符合高斯分布&#xff0c;也稱為正態分布。在物理和工程學領域&#xff0c;此類過程通常被用來描述熱擴散、粒子擴散、概率密度演變等…