Java IO: 使用 FileReader 和 FileWriter 進行文件操作

在 Java 中,進行文件操作是一個常見的任務。FileReaderFileWriter 是用于讀取和寫入文本文件的類,它們提供了一種方便的方法來處理文件內容。本文將介紹如何使用 FileReaderFileWriter,并提供一些示例代碼。

FileReader 類概述

FileReader 類是 Java 中用于讀取文件內容的類,它繼承自 InputStreamReaderFileReader 主要用于讀取文本文件,按字符流的方式讀取文件內容。

FileReader 的基本用法

要使用 FileReader 讀取文件,需要先創建一個 FileReader 對象,然后通過 read() 方法讀取文件內容。

import java.io.FileReader;
import java.io.IOException;public class FileReaderExample {public static void main(String[] args) {try (FileReader reader = new FileReader("example.txt")) {int character;while ((character = reader.read()) != -1) {System.out.print((char) character);}} catch (IOException e) {e.printStackTrace();}}
}

在這個示例中,我們使用 FileReader 逐字符讀取 example.txt 文件的內容,并將其打印到控制臺。注意,我們使用了 try-with-resources 語句來自動關閉 FileReader

讀取文件到字符數組

FileReader 還可以將文件內容讀取到字符數組中,這在需要一次讀取多個字符時非常有用。

import java.io.FileReader;
import java.io.IOException;public class FileReaderCharArrayExample {public static void main(String[] args) {try (FileReader reader = new FileReader("example.txt")) {char[] buffer = new char[100];int numCharsRead;while ((numCharsRead = reader.read(buffer)) != -1) {System.out.print(new String(buffer, 0, numCharsRead));}} catch (IOException e) {e.printStackTrace();}}
}

在這個示例中,我們使用一個字符數組作為緩沖區,逐塊讀取文件內容,并將其轉換為字符串打印到控制臺。

FileWriter 類概述

FileWriter 類是 Java 中用于寫入文件內容的類,它繼承自 OutputStreamWriterFileWriter 主要用于將文本數據寫入文件,按字符流的方式寫入文件內容。

FileWriter 的基本用法

要使用 FileWriter 寫入文件,需要先創建一個 FileWriter 對象,然后通過 write() 方法寫入文件內容。

import java.io.FileWriter;
import java.io.IOException;public class FileWriterExample {public static void main(String[] args) {try (FileWriter writer = new FileWriter("example.txt")) {writer.write("Hello, World!");} catch (IOException e) {e.printStackTrace();}}
}

在這個示例中,我們使用 FileWriter 將字符串 “Hello, World!” 寫入 example.txt 文件。使用 try-with-resources 語句確保 FileWriter 在完成寫操作后自動關閉。

追加寫入文件

FileWriter 還支持追加寫入文件,只需在構造函數中傳入 true 作為第二個參數即可。

import java.io.FileWriter;
import java.io.IOException;public class FileWriterAppendExample {public static void main(String[] args) {try (FileWriter writer = new FileWriter("example.txt", true)) {writer.write("Appended text.");} catch (IOException e) {e.printStackTrace();}}
}

在這個示例中,我們將字符串 “Appended text.” 追加寫入 example.txt 文件,而不是覆蓋原有內容。

結合使用 FileReaderFileWriter

在實際開發中,常常需要結合使用 FileReaderFileWriter 來讀取和寫入文件內容。以下是一個示例,展示如何讀取一個文件的內容并將其寫入另一個文件。

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class FileCopyExample {public static void main(String[] args) {try (FileReader reader = new FileReader("input.txt");FileWriter writer = new FileWriter("output.txt")) {int character;while ((character = reader.read()) != -1) {writer.write(character);}} catch (IOException e) {e.printStackTrace();}}
}

在這個示例中,我們使用 FileReader 逐字符讀取 input.txt 文件的內容,并使用 FileWriter 將其寫入 output.txt 文件。通過 try-with-resources 語句確保兩個流都能在操作完成后自動關閉。

總結

FileReaderFileWriter 是 Java 中用于處理文件 I/O 的基礎類,它們提供了簡單而高效的方法來讀取和寫入文本文件。

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

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

相關文章

使用PHP創建一個簡單的Web爬蟲

隨著互聯網的不斷發展,信息的獲取變得越來越方便。然而,海量的信息也給我們帶來了很多的煩惱,如何高效地獲取到我們所需要的信息就成了一項非常重要的任務。在實現自動化獲取信息的過程中,web爬蟲被廣泛應用。 Web爬蟲是一種自動…

R語言進行字符的替換和刪減gsub,substr函數

目錄 R語言讀文件“-“變成“.“ 提取列字符前幾個 提取列字符末尾幾個 進行字母替換 paste0函數使用</

學計算機的學生假期可以干什么?

學習目標&#xff1a; 學計算機的學生假期可以干什么 學習內容&#xff1a; 實習&#xff1a;尋找計算機相關領域的實習機會&#xff0c;積累工作經驗。這對你未來找工作非常有幫助。在線課程&#xff1a;參加編程、數據科學或其他技術領域的在線課程&#xff0c;提升技能。公…

python實現API調用緩存

python實現API調用緩存 1.代碼2.輸出3.保存的json數據 想把python某些函數的參數及返回值記錄下來,如果之前已計算過,則直接返回緩存中的數據 1.代碼 import jsondef get_variable_name(var):變量轉變量名local_varsglobals()return [name for name, value in local_vars.ite…

螺旋模型:結合瀑布模型和增量模型的項目管理利器

目錄 前言1. 螺旋模型概述1.1 螺旋模型的核心理念1.2 螺旋模型的四個階段 2. 螺旋模型的詳細步驟2.1 計劃階段2.2 風險分析階段2.3 工程階段2.4 評估階段 3. 螺旋模型在大型項目中的應用3.1 應對需求變化3.2 有效的風險管理3.3 增強的客戶參與3.4 靈活的資源分配 4. 螺旋模型的…

redis分布式事務

1. 使用RedisTemplate.opsForValue().setIfAbsent(key, value, time, TimeUnit.SECONDS) 這種方法是基于Redis的SET命令的NX&#xff08;Not eXists&#xff09;選項和EX&#xff08;expiry time&#xff09;選項來實現的。它嘗試設置一個鍵值對&#xff0c;只有當鍵不存在時才…

git-extras

當使用 git-extras 時&#xff0c;除了安裝和基本命令之外&#xff0c;了解如何結合常見的 Git 工作流程和實際開發需求會更加有幫助。下面是一個更全面的 git-extras 使用教程&#xff0c;涵蓋了安裝、常見命令以及實際應用場景的示例。 1. 安裝 git-extras 在 macOS 上&…

Java面試題:討論單例模式的實現方式,包括懶漢式和餓漢式,并討論線程安全問題

單例模式&#xff08;Singleton Pattern&#xff09;是一種設計模式&#xff0c;確保一個類只有一個實例&#xff0c;并提供一個全局訪問點。單例模式在某些場景下很有用&#xff0c;例如配置管理、日志記錄等。以下是單例模式的兩種主要實現方式&#xff1a;懶漢式&#xff08…

【Python】已解決:FileNotFoundError: [Errno 2] No such file or directory: ‘配置信息.csv‘

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決&#xff1a;FileNotFoundError: [Errno 2] No such file or directory: ‘配置信息.csv’ 一、分析問題背景 在編寫Python代碼進行文件操作時&#xff0c;開發者可能會遇到…

備戰秋招day7

很高興又堅持了7天。 算法&#xff08;回溯&#xff09; 77. 組合 class Solution {List<Integer> list new LinkedList<>();List<List<Integer>> llist new LinkedList<>();public List<List<Integer>> combine(int n, int k)…

精品UI知識付費系統源碼網站EyouCMS模版源碼

這是一款知識付費平臺模板&#xff0c;后臺可上傳本地視頻&#xff0c;批量上傳視頻連接&#xff0c; 視頻后臺可設計權限觀看&#xff0c;免費試看時間時長&#xff0c;會員等級觀看&#xff0c;付費觀看等功能&#xff0c; 也帶軟件app權限下載&#xff0c;幫助知識教育和軟件…

制造企業的倉庫管理如何做好數據分析?

在競爭激烈的現代制造業環境中&#xff0c;倉庫管理成為許多生產制造企業面臨的一大挑戰。隨著產品種類的不斷增加和客戶需求的日一個型號&#xff0c;倉庫不僅要處理物料、半成品和成品&#xff0c;還要應對產品更新換代、不同項目客戶的特殊需求等復雜因素。面對這些挑戰&…

《Windows API每日一練》7.1 計時器基礎知識

計時器&#xff08;Timer&#xff09;是一種在編程中用于測量時間間隔的機制。它允許程序在指定的時間間隔內執行特定的操作或觸發事件。 本節必須掌握的知識點&#xff1a; 計時器 7.1.1 計時器 我們可以調用SetTimer函數為自己的Windows程序分配一個計時器。SetTimer包含一…

pygame在mobaxterm上無法顯示屏幕

在mobaxterm上的linux系統&#xff08;這里測試的是ubuntu系統&#xff09;上運行pygame時&#xff0c;在運行代碼 pygame.display.init()展示窗口時會顯示pygame.error: windows not available的錯誤。 這是因為linux下的窗口展示配置與windows不同&#xff0c;windows下按 …

C++實現簡化版Qt信號槽機制(2):增加內存安全保障

在上一篇文章中《C實現一個簡單的Qt信號槽機制》&#xff0c;我們基于前面的反射代碼實現了信號槽的功能。 但是上一篇的代碼中沒有對象生命周期管理的機制&#xff0c;如果在對象的生命周期結束后還存在未斷開的信號和槽連接&#xff0c;那么信號觸發時可能會嘗試訪問已經被析…

ValidateAntiForgeryToken、AntiForgeryToken 防止CSRF(跨網站請求偽造)

用途&#xff1a;防止CSRF&#xff08;跨網站請求偽造&#xff09;。 用法&#xff1a;在View->Form表單中: aspx&#xff1a;<%:Html.AntiForgeryToken()%> razor&#xff1a;Html.AntiForgeryToken() 在Controller->Action動作上&#xff1a;[ValidateAntiForge…

Java的IO體系

目錄 1、Java的IO體系2、IO的常用方法3、Java中為什么要分為字節流和字符流4、File和RandomAccessFile5、Java對象的序列化和反序列化6、緩沖流7、Java 的IO流中涉及哪些設計模式 1、Java的IO體系 IO 即為 input 輸入 和 output輸出 Java的IO體系主要分為字節流和字符流兩大類…

java對word文檔轉圖片,轉PDF

話不多說&#xff0c;直接入題 先引包 <dependency><groupId>com.luhuiguo</groupId><artifactId>aspose-words</artifactId><version>23.1</version></dependency> word文檔轉圖片 import com.aspose.words.Document; impor…

防爆配電箱航空插頭正確安裝

防爆配電箱航空插頭的安裝確實有特殊要求&#xff0c;這些要求旨在確保配電箱在潛在危險環境中的安全運行。以下是一些關鍵的安裝要求&#xff1a; 安裝環境&#xff1a;防爆配電箱應安裝在危險區域之外的安全地點&#xff0c;遠離潛在的爆炸源和危險物質。安裝環境應保持干燥、…

springboot使用feign調用不依賴cloud

在使用spring boot調用第三方api中&#xff0c;常用的是okhttp、apache http client等&#xff0c;但是直接使用下來還是有點繁瑣&#xff0c;需要手動轉換實體。 在springcloud中有個openfeign調用&#xff0c;第一次體驗到調用接口還能這么絲滑。注解寫道接口上&#xff0c;…