目錄
使用BufferedReader逐行讀取文本文件
使用Files.readAllLines()快速讀取小文件
使用Scanner按需讀取內容(適合解析)
注意事項和細節
首頁 Java java教程 如何在Java中讀取文件?

如何在Java中讀取文件?

Jun 26, 2025 am 12:48 AM

讀取文件在Java 中有三種常見方法。第一,使用BufferedReader 逐行讀取,適合大文件,步驟包括創建FileReader、包裝成BufferedReader、用readLine() 讀取並關閉流;第二,使用Files.readAllLines() 一次性讀取小文件內容到列表中;第三,使用Scanner 按需讀取並解析數據,適合結構化文本。此外,注意路徑設置、資源關閉及編碼指定等問題。選擇方法應根據文件大小、處理方式等具體需求決定。

How to read a file in Java?

讀取文件在Java 中是一個常見的操作,適用於處理配置、日誌、數據導入等場景。 Java 提供了多種方式來實現這個功能,不同的方法適用於不同的使用情況。


使用BufferedReader逐行讀取文本文件

這是最常見的方式之一,適合讀取較大的文本文件,尤其是需要逐行處理時。

  • 步驟:
    • 創建FileReader實例
    • 將其包裝成BufferedReader
    • 使用readLine()方法逐行讀取內容
    • 最後關閉流以釋放資源
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

這種方式的優點是內存佔用低,適合大文件。但如果你只是想一次性讀取整個文件內容,可以考慮下面的方法。


使用Files.readAllLines()快速讀取小文件

對於較小的文本文件,可以直接用一行代碼讀取所有內容到一個列表中:

 List<String> lines = Files.readAllLines(Paths.get("example.txt"));
lines.forEach(System.out::println);

這種方法簡潔明了,但不適合非常大的文件,因為它會一次性把全部內容加載到內存中。


使用Scanner按需讀取內容(適合解析)

如果你希望一邊讀取一邊做解析,比如讀取數字或特定格式的數據,可以用Scanner

 try (Scanner scanner = new Scanner(new File("data.txt"))) {
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        // 處理每一行}
}

Scanner的優勢在於可以靈活地讀取不同類型的數據,比如nextInt()nextDouble()等,適合處理結構化文本數據。


注意事項和細節

  • 文件路徑可以是相對路徑也可以是絕對路徑,注意路徑是否正確。

  • 始終使用try-with-resources 來自動關閉資源,避免資源洩漏。

  • 如果文件編碼不是默認的平台編碼,建議指定字符集,例如:

     new BufferedReader(new InputStreamReader(new FileInputStream("file.txt"), StandardCharsets.UTF_8));
  • 如果讀取的是二進製文件,應使用FileInputStream而不是FileReader


  • 基本上就這些方法了,選擇哪種方式取決於你的具體需求:文件大小、是否需要逐行處理、是否要解析內容等等。

    以上是如何在Java中讀取文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1592
276
如何使用JDBC處理Java的交易? 如何使用JDBC處理Java的交易? Aug 02, 2025 pm 12:29 PM

要正確處理JDBC事務,必須先關閉自動提交模式,再執行多個操作,最後根據結果提交或回滾;1.調用conn.setAutoCommit(false)以開始事務;2.執行多個SQL操作,如INSERT和UPDATE;3.若所有操作成功則調用conn.commit(),若發生異常則調用conn.rollback()確保數據一致性;同時應使用try-with-resources管理資源,妥善處理異常並關閉連接,避免連接洩漏;此外建議使用連接池、設置保存點實現部分回滾,並保持事務盡可能短以提升性能。

用雅加達EE在Java建立靜止的API 用雅加達EE在Java建立靜止的API Jul 30, 2025 am 03:05 AM

SetupaMaven/GradleprojectwithJAX-RSdependencieslikeJersey;2.CreateaRESTresourceusingannotationssuchas@Pathand@GET;3.ConfiguretheapplicationviaApplicationsubclassorweb.xml;4.AddJacksonforJSONbindingbyincludingjersey-media-json-jackson;5.DeploytoaJakar

如何使用Java的日曆? 如何使用Java的日曆? Aug 02, 2025 am 02:38 AM

使用java.time包中的類替代舊的Date和Calendar類;2.通過LocalDate、LocalDateTime和LocalTime獲取當前日期時間;3.使用of()方法創建特定日期時間;4.利用plus/minus方法不可變地增減時間;5.使用ZonedDateTime和ZoneId處理時區;6.通過DateTimeFormatter格式化和解析日期字符串;7.必要時通過Instant與舊日期類型兼容;現代Java中日期處理應優先使用java.timeAPI,它提供了清晰、不可變且線

比較Java框架:Spring Boot vs Quarkus vs Micronaut 比較Java框架:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

前形式攝取,quarkusandmicronautleaddueTocile timeProcessingandGraalvSupport,withquarkusoftenpernperforminglightbetterine nosserless notelless centarios.2。

在Java的掌握依賴注入春季和Guice 在Java的掌握依賴注入春季和Guice Aug 01, 2025 am 05:53 AM

依賴性(di)IsadesignpatternwhereObjectsReceivedenciesenciesExtern上,推廣looseSecouplingAndEaseerTestingThroughConstructor,setter,orfieldInjection.2.springfraMefringframeWorkSannotationsLikeLikeLike@component@component,@component,@service,@autowiredwithjava-service和@autowiredwithjava-ligatiredwithjava-lase-lightike

Java性能優化和分析技術 Java性能優化和分析技術 Jul 31, 2025 am 03:58 AM

使用性能分析工具定位瓶頸,開發測試階段用VisualVM或JProfiler,生產環境優先Async-Profiler;2.減少對象創建,復用對象、用StringBuilder替代字符串拼接、選擇合適GC策略;3.優化集合使用,根據場景選型並預設初始容量;4.優化並發,使用並發集合、減少鎖粒度、合理設置線程池;5.調優JVM參數,設置合理堆大小和低延遲垃圾回收器並啟用GC日誌;6.代碼層面避免反射、用基本類型替代包裝類、延遲初始化、使用final和static;7.持續性能測試與監控,結合JMH

Java項目管理Maven的開發人員指南 Java項目管理Maven的開發人員指南 Jul 30, 2025 am 02:41 AM

Maven是Java項目管理和構建的標準工具,答案在於它通過pom.xml實現項目結構標準化、依賴管理、構建生命週期自動化和插件擴展;1.使用pom.xml定義groupId、artifactId、version和dependencies;2.掌握核心命令如mvnclean、compile、test、package、install和deploy;3.利用dependencyManagement和exclusions管理依賴版本與衝突;4.通過多模塊項目結構組織大型應用並由父POM統一管理;5.配

了解Java虛擬機(JVM)內部 了解Java虛擬機(JVM)內部 Aug 01, 2025 am 06:31 AM

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

See all articles