每天寫java到期末考試(6.6)-java文件輸入輸出流實驗

1、用字節流讀寫二進制文件

要求:用DataOutputStream+FileOutputStream類將1,2,…,100,這100個數字寫入到文件

d:\out1.bin里,然后再用DatalnputStream+FilelnputStream類將d:\out1.bin的內讀出來,并輸出到屏幕上。

用DataOutputStream+FileOutputStream寫入二進制數據時,直接調用DataOutputStream的writelnt()方

法將一個int型數據寫入到文件中。讀入數據時用DatalnputStream+FilelnputStream,調用DatalnputStream的

readlnt()方法讀入一個int型數據。

判斷是否讀入完畢有3種辦法:

a:用while循環,當拋出EOFException時表示數據讀入完畢。

b:先調用File類的length()方法得到輸入流的字節總數,字節總數除以4得到需要讀入的次數,然后用for循

環來讀入。

c:在寫入d:\out1.bin時,先寫入一個整數,表示一共寫入了多少個數,例如先寫入100,讀入時先讀第一

個數字,即100,然后循環100次讀取其余的數字。

import java.io.*;public class BinaryFileReadWrite {public static void main(String[] args) {// 寫入數據到文件try {DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:\\out1.bin"));for (int i = 1; i <= 100; i++) {dos.writeInt(i);}dos.close();System.out.println("寫入數據成功");} catch (IOException e) {System.out.println("寫入數據失敗:" + e.getMessage());}// 從文件讀取數據并輸出到屏幕try {DataInputStream dis = new DataInputStream(new FileInputStream("d:\\out1.bin"));int num;while (true) {try {num = dis.readInt();System.out.print(num + " ");} catch (EOFException e) {break;}}dis.close();} catch (IOException e) {System.out.println("讀取數據失敗:" + e.getMessage());}}
}

2、用字符流讀寫字符文件

要求:用FileWriter類將1,2,…,100,這100個數字寫入到文件d:\out2.txt里,然后再用FileReader類將

d:\out2.txt的內讀出來,并輸出到屏幕上。

注意:將一個數字以字符流的方式寫入文件時,要將該數字先轉化為字符,然后寫入到文件中。從文件中讀

入字符數據時,可以一次讀入一個字符,也可以一次讀多個字符,放到字符數組中。

import java.io.*;public class CharacterFileReadWrite {public static void main(String[] args) {// 寫入數據到文件try (FileWriter fw = new FileWriter("d:\\out2.txt")) {for (int i = 1; i <= 100; i++) {fw.write(Integer.toString(i));fw.write("\n"); // 換行}System.out.println("寫入數據成功");} catch (IOException e) {System.out.println("寫入數據失敗:" + e.getMessage());}// 從文件讀取數據并輸出到屏幕try (FileReader fr = new FileReader("d:\\out2.txt")) {int data;while ((data = fr.read()) != -1) {System.out.print((char) data);}} catch (IOException e) {System.out.println("讀取數據失敗:" + e.getMessage());}}
}

3、用字節流讀寫字符文件

用FileOutputStream將1,2,…,100,這100個數字的每個數字按照字節數組方式寫入到文件d:\out3.txt

里,然后再用FilelnputStream類按照一次讀入一個字節數組的方式將d:\out3.txt的內的數據讀出來,并輸出到

屏幕上。

注意:將一個數字以字節數組的方式寫入文件時,要將該數字先用String.valueOf()方法轉化為字符,然后

用String的getBytes()方法變成一個字節數組,然后用FileOutputStream類將字節數組寫入到文件中。從文件中

讀入字符數據時,可以用FilelnputStream一次讀入一個字節數組,然后把字節數組變成字符串。

import java.io.*;public class ByteFileReadWrite {public static void main(String[] args) {// 寫入數據到文件try (FileOutputStream fos = new FileOutputStream("d:\\out3.txt")) {for (int i = 1; i <= 100; i++) {String numberAsString = String.valueOf(i);byte[] bytes = numberAsString.getBytes();fos.write(bytes);fos.write("\n".getBytes()); // 換行}System.out.println("寫入數據成功");} catch (IOException e) {System.out.println("寫入數據失敗:" + e.getMessage());}// 從文件讀取數據并輸出到屏幕try (FileInputStream fis = new FileInputStream("d:\\out3.txt")) {byte[] buffer = new byte[1024]; // 緩沖區大小int bytesRead;while ((bytesRead = fis.read(buffer)) != -1) {String data = new String(buffer, 0, bytesRead);System.out.print(data);}} catch (IOException e) {System.out.println("讀取數據失敗:" + e.getMessage());}}
}

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

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

相關文章

單元測試AIR原則:提升代碼質量的秘密武器

文章目錄 引言一、AIR原則1. Automatic&#xff08;自動化&#xff09;2. Independent&#xff08;獨立性&#xff09;3. Repeatable&#xff08;可重復性&#xff09; 二、Automatic&#xff08;自動化&#xff09;三、Independent&#xff08;獨立性&#xff09;四、Repeatab…

【MySQL】sql語句之表操作(上)

序言 在上一篇的數據庫操作的內容中&#xff0c;學習了兩種屬性和常用的七種操作&#xff0c;學習是循序漸進的&#xff0c;庫的操作學完了&#xff0c;就要開始學習表的操作了&#xff0c;而表可與數據強相關&#xff0c;比如DDL&#xff0c;即數據定義語言&#xff0c;DML&am…

DVWA-XSS(Stored)

Low 觀察后端代碼&#xff0c;對輸入進行了一些過濾和轉義。trim(string,charlist) 函數用于移除字符串兩側的空白字符或其他預定義字符&#xff0c;charlist 參數可以規定從字符串中刪除哪些字符。stripslashes() 函數用于刪除反斜杠。mysqli_real_escape_string() 函數用于對…

SAAS系統架構設計剖析

多租戶數據隔離 用戶擔心數據安全性&#xff0c;也就是要做數據隔離&#xff0c;不允許 A 租戶查到 B 租戶的數據 1、軟隔離 數據在一起&#xff0c;只不過帶著租戶 id 查詢 在底層驅動 jar 上進行封裝&#xff0c;強制帶上租戶 id 比如&#xff1a;MySQL、MQ、Redis&#…

【論文精讀】DCRNN-擴散圖卷積循環神經網絡

DCRNN 模型是南加州大學的 Li 等人發表在 I C L R 2018 ICLR 2018 ICLR2018 會議上一個用于交通預測的時空預測模型,論文題目為: 《DIFFUSION CONVOLUTIONAL RECURRENT NEURAL NETWORK: DATA-DRIVEN TRAFFIC FORECASTING》,文章地址為: https://arxiv.org/abs/1707.01926。 …

vs中運行程序時,報不能運行解決方式

問題 在vs中編譯運行程序中&#xff0c;如果程序還在運行&#xff0c;編譯會報錯&#xff0c;但是在后臺又找不到對應的程序 解決方式 1、tasklist | find “進程名” 2、taskkill /PID

【實戰】kafka3.X kraft模式集群搭建

文章目錄 前言kafka2.0與3.x對比準備工作JDK安裝kafka安裝服務器增加hosts 修改Kraft協議配置文件格式化存儲目錄 啟動集群停止集群測試Kafka集群創建topic查看topic列表查看消息詳情生產消息消費消息查看消費者組查看消費者組列表 前言 相信很多同學都用過Kafka2.0吧&#xf…

二叉樹的鏡像--c++【做題記錄】

【問題描述】 給定擴展二叉樹的前序序列&#xff0c;構建二叉樹。 求這課二叉樹的鏡像&#xff0c;并輸出其前序遍歷序列。 【輸入形式】 輸入擴展二叉樹的前序序列。 【輸出形式】 輸出鏡像二叉樹的前序遍歷序列。 【樣例輸入】 ab##cd##e## 【樣例輸出】 鏡像后二叉樹的前序遍…

功能問題:如何防止接口重復請求?

大家好&#xff0c;我是大澈&#xff01; 本文約 1400 字&#xff0c;整篇閱讀約需 3 分鐘。 防止接口重復請求在軟件開發中非常重要&#xff0c;重復請求必然會導致服務器資源的浪費。 因為每次請求都需要服務器進行處理&#xff0c;如果請求是重復的&#xff0c;那么服務…

乘船過河(ship)

合肥市第33屆信息學競賽&#xff08;2016年&#xff09; 題目描述 Description 卡卡西和小朋友們要乘船過河了&#xff0c;港口有很多條船可以租到&#xff0c;并且之間沒有區別&#xff0c;每條船的出租費用也是一樣的。但是一條船最多只能乘坐兩個人&#xff0c;且乘客的總…

STM32 IIC 使用 HAL 庫操作eeprom

在STM32上通過I2C接口&#xff08;注意&#xff1a;在標準STM32庫中&#xff0c;I2C接口通常被寫為"I2C"而不是"IIC"&#xff09;與EEPROM芯片通信時&#xff0c;你需要遵循I2C通信協議&#xff0c;并使用STM32的HAL庫或標準外設庫&#xff08;如果適用&am…

tomcat配置請求的最大參數個數和請求數據大小

maxParameterCount"10000" maxPostSize"10485760" maxParameterCount&#xff1a;單個請求最大請求參數個數&#xff1b; maxPostSize&#xff1a;單個請求最大數據大小&#xff0c;1048576010M&#xff1b;

基本算法——位運算

a^b 原題鏈接&#xff1a;登錄—專業IT筆試面試備考平臺_牛客網 題目描述 運行代碼 #include<iostream> using namespace std; long long a,b,c,t1; int main() {cin>>a>>b>>c;for(;b;b/2){if(b&1)tt*a%c;aa*a%c;}cout<<t%c; } 代碼思路…

汽車軟件 OTA技術解析

汽車軟件 OTA 技術概述 在當今汽車行業中,軟件定義汽車的概念逐漸深入人心。隨著汽車智能化和網聯化的發展,汽車軟件的重要性日益凸顯。而汽車軟件 OTA(Over-the-Air)技術作為一種重要的軟件升級和維護方式,正逐漸成為汽車行業的熱點話題。 汽車軟件 OTA 技術是指通過無線…

邏輯回歸及python實現

概述 logistic回歸是一種廣義線性回歸&#xff08;generalized linear model&#xff09;&#xff0c;因此與多重線性回歸分析有很多相同之處。它們的模型形式基本上相同&#xff0c;都具有 w‘xb&#xff0c;其中w和b是待求參數&#xff0c;其區別在于他們的因變量不同&#x…

App Inventor 2 復制屏幕功能,界面設計更便捷,避免誤刪組件

“復制屏幕”功能全新上線&#xff0c;中文網獨有&#xff08;MIT沒有此功能&#xff09;&#xff0c;可以復制屏幕中的普通組件、圖片、附件、拓展、代碼塊。更多升級詳情可查看發布日志。 下面演示一下屏幕的復制效果&#xff1a; 1、Screen1屏幕上有若干組件、及一個SQLit…

美業SaaS系統源碼分享-收銀管理的主要功能

美業SaaS系統 連鎖多門店美業收銀系統源碼 多門店管理 / 會員管理 / 預約管理 / 排班管理 / 商品管理 / 活動促銷 PC管理后臺、手機APP、iPad APP、微信小程序 ? 博弈美業-收銀管理功能 1、同時支持支付寶和微信支付&#xff0c;具有簡單便捷安全等優點&#xff0c;并且符…

MySQL之查詢性能優化(八)

查詢性能優化 MySQL查詢優化器的局限性 MySQL的萬能"嵌套循環"并不是對每種查詢都是最優的。不過還好&#xff0c;MySQL查詢優化器只對少部分查詢不適用&#xff0c;而且我們往往可以通過改寫查詢讓MySQL高效地完成工作。還有一個好消息&#xff0c;MySQL5.6版本正…

Java開發注意事項

注意&#xff1a;測試類中使用Autowired注解注入Bean&#xff0c;不要使用RequiredArgsConstructor注解注入Bean 正確示范: import org.springframework.boot.test.context.SpringBootTest; import org.springframework.beans.factory.annotation.Autowired;SpringBootTest c…

Ffmpeg安裝和簡單使用

Ffmpeg安裝 下載并解壓 進入官網 (https://ffmpeg.org/download.html)&#xff0c;選擇 Window 然后再打開的頁面中下滑找到 release builds&#xff0c;點擊 zip 文件下載 環境變量配置 下載好之后解壓&#xff0c;找到 bin 文件夾&#xff0c;里面有3個 .exe 文件 然后復制…