首頁 >Java >java教程 >Java 中的文字文件

Java 中的文字文件

WBOY
WBOY原創
2024-08-30 15:54:181247瀏覽

程式設計師在使用需要讀寫檔案的 Java 應用程式時使用 Java 中的文字檔案。 文字檔案是儲存資訊、程式碼或任何其他資料的通用方式。文字檔案被視為水平組織的字元序列。 Java 中的文字檔案具有副檔名,例如包含 Java 程式碼的 .java。 Java 提供了不同的實用程序,可讓您透過讀取或寫入純文字檔案來處理它們。您可以根據您的理解選擇任何讀取/寫入實用程式。

Java 中的文字文件

主要亮點

  • 文字檔由不同的字元組成,可以使用java.io.package進行讀寫操作。
  • 要閱讀,您可以使用 Reader 類別或實用程式類別。一些實用程式類別是 - File Class、FileReader、BufferedReader 和 Scanner 類別。
  • 要在 Java 中寫入文件,您可以使用 Java 7 Files、FileWriter、BufferedWriter 和 FileOutputStream。
  • 使用不同的方法,您可以有效地處理 Java 中的文字檔案。

如何用Java讀取文字檔?

  • 在文字檔案中,每一行都有純字符,並且每行都由一個不可見的「行尾」符號標記,代表該特定行的結尾。
  • 為了用 Java 讀取文字文件,可以使用不同的實用程式。每個實用程式都有自己的讀取文字檔案的方式,並提供一些與其他替代方案不同的功能。
  • 這裡我們將透過一個很好的例子來解釋不同的方法,以便更好地理解。

在開始使用這些方法之前,我們正在考慮路徑“/Users/praashibansal/Desktop/Data/test.txt”處的文字檔案“test.txt”,其內容為“Hello,there”。

廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗

Java 中的文字文件

方法 1 – 使用 BufferedReader 類別

  • 您可以使用此方法從字元輸入流中讀取文字。您可以使用預設緩衝區大小 (8KB) 或指定您自己的緩衝區大小。它支援編碼。
  • 每個請求都有一個 Reader,它會建立由底層字元流或位元組流組成的讀取請求。
  • 因此,許多開發人員建議使用其 read() 操作將 BufferedReader 包裝在任何 Reader 周圍。
  • 它非常適合處理大型檔案。該方法是同步的,因此可以在多個執行緒中使用。

代碼:

import java.io.*;
 public class BReader {
       public static void main(String[] args) throws Exception
    {
              File f = new File(
            "https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
             // Creating an object
        BufferedReader b
            = new BufferedReader(new FileReader(f));
        // Declaring a string variable
        String s;
        // Condition holds till
        // there is a character in a string
        while ((s = b.readLine()) != null)
            // Print the string
            System.out.println(s);
    }
}

輸出:

Java 中的文字文件

方法 2 – 使用 FileReader 類別

  • 您可以使用 FileReader 取得 BufferedReader 並開始讀取檔案。
  • 與 BufferedReader 不同,它不支援編碼,而是使用系統預設的編碼。
  • 這只是一種簡單的讀字方式。
  • 該類別使用三個建構子。
  • FileReader(File file):建立一個新的 FileReader。該文件是您將從中讀取內容的文件。
  • FileReader(FileDescriptor fd):建立一個新的 FileReader,從指定為 FileDescriptor 的檔案中讀取。
  • FileReader(String fileName):建立一個新的 FileReader,將從名為 fileName 的檔案中讀取內容。

代碼:

import java.io.*;
public class RFile {
     public static void main(String[] args) throws Exception
    {
        // Passing the file’s path 
        FileReader f = new FileReader(
            "https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
        // declaring loop variable
        int i;
             while ((i = f.read()) != -1)
            // Print the content of a file
            System.out.print((char)i);
    }
}

輸出:

Java 中的文字文件

方法 3 – 使用 Scanner 類別

  • 它是一個簡單的文字掃描器,它能夠透過正規表示式解析原始類型和字串。
  • 它透過分隔符號模式將輸入分解為標記。預設情況下,分隔符號是空格。
  • 然後令牌轉換成不同類型的值。

代碼:

import java.io.File;
import java.util.Scanner;
public class ReadScan
{
  public static void main(String[] args) throws Exception
  {
    // passing the file’s path
    File file = new File("https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
    Scanner s = new Scanner(file);
    while (s.hasNextLine())
      System.out.println(s.nextLine());
  }
}

輸出:

Java 中的文字文件

方法 4 – 使用 Files 類別方法

  • Files 類別使用以下方法來讀取檔案。
  • readAllBytes(Path path):從檔案中讀取所有位元組,並傳回包含檔案中位元組的位元組數組。
  • readAllLines(Path path, Charsetcs):從檔案讀取所有行並傳回包含檔案中的行的清單。

代碼:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FCExample {
	public static void main(String[] args) {
		Path path = Paths.get("https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
		try {
			byte[] b = Files.readAllBytes(path);
			System.out.println("Read bytes: \n"+new String(b));
		} catch (IOException e) {
		}
	}

}

輸出:

Java 中的文字文件

How to Write a Text File in Java?

  • Writing a text file in Java is also a simple process. Java offers different utilities to help write the lines to the file.
  • Now for this process, we are assuming a file at the location- C:\\Users\\Data\\Desktop\\write.txt to which we are writing.

Method 1 – Using FileWriter Method

  • This all-in-one method allows you to write int, byte array, and String to the File.
  • It allows you to write directly into Files and is used in case of the less writes.
  • Using the FileWriter method, you can write part of the String or byte array.

Code:

import java.io.FileWriter; 
 public class FWFile { 
 public static void main(String args[]){ 
 try{ 
 FileWriter f=new FileWriter("https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt"); 
 f.write("Hello"); 
 f.close(); 
 }
catch(Exception e)
{
System.out.println(e);
} 
 System.out.println("Hello"); 
 } 
 }

Output:

Java 中的文字文件

Method 2 – Using BufferedWriter Method

  • BufferedWriter is similar to FileWriter, but BufferedWriter uses an internal buffer to write data into File.
  • It works well if you need to do more write operations and to ensure performance.

Code:

import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;

public class BRExample {
  public static void main(String args[]) {
    String data = "data for output file";
    try {
      // Creates a FileWriter
      FileWriter file = new FileWriter("https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
        try ( // Creates a BufferedWriter
                var o = new BufferedWriter(file)) {
            // Writes the string to the file
            o.write(data);
        }
    }
    catch (IOException e) {
      e.getStackTrace();
    }
  }
}

Output:

Java 中的文字文件

Method 3 – Using FileOutputStream Method

  • For writing text to the file, you can simply use FileWriter and BufferedWriter.
  • But, if you want the raw stream data to be written directly into a file, it is recommended to use the FileOutputStream utility.
  • With this method, you must create the class object with the specific filename to write data into a file.
  • The following example converts the string content into the byte array we will write into the file using the write() method.

Code:

import java.io.FileOutputStream;
import java.io.IOException;
public class GFG {
       public static void main(String[] args)
    {
        String f = "Hello";
        FileOutputStream o = null;
        // starting Try block 
        try {
            // creating an object of FileOutputStream
            o = new FileOutputStream("https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
            // storing byte content from string
            byte[] str = f.getBytes();
            // writing into the file
            o.write(str);
            // printing success message 
            System.out.print(
                "data added successfully.");
        }
        // Catch block for exception handling
        catch (IOException e) {
                     System.out.print(e.getMessage());
        }
        finally {
            // closing the object
            if (o != null) {
                // checking if the file is closed 
                       try {
                                                       o.close();
                }
                catch (IOException e) {
                    // showing exception message
                    System.out.print(e.getMessage());
                }
            }
        }
    }
}

Output:

Java 中的文字文件

Method 4 – Using Files Class

  • In Java 7, you will get another utility, Files class, allowing you to write to a text file using its write function.
  • Internally, this class uses the OutputStream utility to write a byte array into the file.

Code:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
 * Java Files write file example
 * 
 * @author pankaj
 *
 */
public class FCExample {
	public static void main(String[] args) {
		Path path = Paths.get("https://cdn.educba.com/Users/praashibansal/Desktop/Data/test.txt");
		try {
			String str = "Example";
			byte[] bs = str.getBytes();
			Path w = Files.write(path, bs);
			System.out.println("Written content in file:\n"+ new String(Files.readAllBytes(w)));
		} catch (IOException e) {
		}
	}
}

Output:

Java 中的文字文件

Conclusion

Reading and writing a file in Java is a straightforward process. With the availability of different methods and utilities in Java, you can choose a specific way to read from and write to a file. Each utility has its functionality that makes it different from others.

FAQs

Q1. What are the different methods to read a text file in Java?

Answer: To read, you can use Reader Class or utility class. Some utility classes are- File Class, FileReader, BufferedReader, and Scanner class.

Q2. What are the different methods for writing a text file in Java?

Answer: To write a file in Java, you can use FileWriter, BufferedWriter, java 7 Files, FileOutputStream, and many other methods.

Q3. What package to use for handling files in Java?

Answer: You can easily import the File class from the java.io package to work with files.

以上是Java 中的文字文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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