首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 讀取純文字檔與 Word 文件完整實作教學

     編輯:Java 相關知識

Java 讀取檔案操作指南

在 Java 開發中,讀取檔案是基礎且重要的技能。本文將透過實際程式碼範例,詳細說明如何讀取一般文字檔(.log、.txt)以及 Word 文件(.doc),幫助開發者快速掌握檔案 I/O 操作。

一、讀取一般文字檔案

以日誌檔 .log 為例,使用 BufferedReader 搭配 FileReader 可高效逐行讀取檔案內容:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileTest {
    public static void main(String[] args) {
        File file = new File("D:\\logserrorMsg.log");
        
        // 檢查檔案是否存在
        if (file.exists()) {
            System.out.println("此檔案存在");
        } else {
            System.out.println("此檔案不存在");
            return;
        }

        try (FileReader fr = new FileReader(file);
             BufferedReader br = new BufferedReader(fr)) {
            
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
            
            // 取得檔案大小(MB)
            long fileSizeMB = new FileInputStream(file).available() / 1024 / 1024;
            System.out.println("檔案大小為(MB):" + fileSizeMB + "M");
            
        } catch (FileNotFoundException e) {
            System.err.println("找不到檔案:" + e.getMessage());
        } catch (IOException e) {
            System.err.println("讀取檔案發生錯誤:" + e.getMessage());
        }
    }
}

關鍵點說明:

  • 使用 try-with-resources 自動關閉資源,避免記憶體洩漏
  • BufferedReader.readLine() 逐行讀取,適合大型檔案
  • 透過 FileInputStream.available() 估算檔案大小

二、讀取 Word 文件(.doc 格式)

讀取 Word 文件需使用 Apache POI 函式庫中的 WordExtractor 類別。

環境準備

  1. 前往 Apache POI 官網 下載最新版本
  2. 將 poi-scratchpad-{version}.jar 加入專案類別路徑

程式碼實作

import java.io.FileInputStream;
import org.textmining.text.extraction.WordExtractor;

public class WordTest {
    public static void main(String[] args) throws Exception {
        new WordTest().readWordDocument();
    }

    public void readWordDocument() throws Exception {
        String filePath = "C:/test.doc";
        try (FileInputStream fis = new FileInputStream(filePath)) {
            WordExtractor extractor = new WordExtractor();
            String content = extractor.extractText(fis);
            System.out.println("Word 文件內容:");
            System.out.println(content);
        }
    }
}

注意事項:

  • WordExtractor 僅支援舊版 .doc 格式(二進位格式)
  • 若需處理 .docx(OOXML 格式),請改用 XWPFDocument 類別
  • 大型文件建議使用串流方式處理,避免記憶體不足

總結

本文示範了 Java 讀取文字檔與 Word 文件的兩種常見情境。文字檔讀取使用標準 I/O API 即可完成;Word 文件則需借助 Apache POI 函式庫。實際專案中,建議根據檔案大小與格式選擇適當的讀取策略,並妥善處理例外與資源釋放。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved