Bạn sử dụng lớp nào để đọc dữ liệu từ tệp văn bản?

BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append(System.lineSeparator());
        line = br.readLine();
    }
    String everything = sb.toString();
} finally {
    br.close();
}



     CodeJava
          Mã hóa niềm đam mê của bạn

      
  • Trang chủ >
  • Java SE >
  • Tập tin vào/ra

Tìm hiểu tệp Java IO.

  • Đọc/Ghi tệp nhị phân

  • Đọc/Ghi tệp văn bản

  • Đọc từng dòng tệp văn bản

  • Liệt kê các tập tin và thư mục

  • Sao chép tệp hoặc thư mục

  • Đổi tên/Di chuyển tệp hoặc thư mục

  • Dọn dẹp/Xóa thư mục

  • Đọc đầu vào từ người dùng

  • Cách sử dụng tệp RandomAccess

  • DataInputStream và DataOutputStream

  • FileInputStream và FileOutputStream

  • FileReader và FileWriter

  • Hướng dẫn quét Java

  • Ví dụ tuần tự hóa Java

  • Tại sao tuần tự hóa trong Java?

  • Hiểu bên ngoài Java

  • Đọc nội dung tệp Zip

  • Giải nén tệp Zip

  • Nén tệp thành Zip

  • Nén thư mục thành Zip

  • Đọc/Ghi Cấu hình

  • Thực thi các lệnh của hệ điều hành

  • API dịch vụ xem tệp



Cách đọc và ghi tệp văn bản trong Java

Chi tiết Viết bởi Nam Hà MinhCập nhật lần cuối vào ngày 28 tháng 7 năm 2019. In  Email



Trong hướng dẫn này, chúng tôi chỉ cho bạn cách đọc và ghi vào tệp văn bản (hoặc ký tự) bằng cách sử dụng các lớp có sẵn trong java. io gói. Trước tiên, hãy xem các lớp khác nhau có khả năng đọc và ghi các luồng ký tự.

1. Trình đọc, InputStreamReader, FileReader và BufferedReader

Reader là lớp trừu tượng để đọc các luồng ký tự. Nó thực hiện các phương pháp cơ bản sau.
  • đọc() . đọc một ký tự.
  • read(char[]) . đọc một mảng ký tự.
  • bỏ qua(dài) . bỏ qua một số ký tự.
  • đóng() . đóng luồng.
InputStreamReader là cầu nối giữa luồng byte với luồng ký tự. Nó chuyển đổi byte thành ký tự bằng cách sử dụng bộ ký tự được chỉ định. Bộ ký tự có thể là mã hóa ký tự mặc định của hệ điều hành hoặc có thể được chỉ định rõ ràng khi tạo InputStreamReader . FileReader là một lớp thuận tiện để đọc các tệp văn bản bằng mã hóa ký tự mặc định của hệ điều hành. BufferedReader đọc văn bản từ luồng ký tự một cách hiệu quả (các ký tự được đệm để tránh đọc thường xuyên từ luồng bên dưới) và cung cấp một phương thức thuận tiện để đọc một dòng ký tự . Sơ đồ sau đây cho thấy mối quan hệ của các lớp trình đọc này trong readLine().The following diagram show relationship of these reader classes in the java. gói io .
Bạn sử dụng lớp nào để đọc dữ liệu từ tệp văn bản?
 

2. Nhà văn, OutputStreamWriter, FileWriter và BufferedWriter



Writer là lớp trừu tượng để viết các luồng ký tự. Nó thực hiện các phương pháp cơ bản sau.
  • write(int) . viết một ký tự.
  • ghi(char[]) . viết một mảng ký tự.
  • ghi(Chuỗi) . viết một chuỗi.
  • đóng() . đóng luồng.
OutputStreamWriter là cầu nối giữa luồng byte với luồng ký tự. Các ký tự được mã hóa thành byte bằng bộ ký tự được chỉ định. Bộ ký tự có thể là mã hóa ký tự mặc định của hệ điều hành hoặc có thể được chỉ định rõ ràng khi tạo OutputStreamWriter . FileWriter là lớp thuận tiện để ghi tệp văn bản bằng mã hóa ký tự mặc định của hệ điều hành. BufferedWriter ghi văn bản vào luồng ký tự một cách hiệu quả (các ký tự, mảng và chuỗi được lưu vào bộ đệm để tránh ghi thường xuyên vào luồng bên dưới) và cung cấp một phương thức thuận tiện cho . newLine() . Sơ đồ sau đây cho thấy mối quan hệ của các lớp nhà văn này trong java. gói io .
Bạn sử dụng lớp nào để đọc dữ liệu từ tệp văn bản?
 

3. Mã hóa ký tự và bộ ký tự

Khi xây dựng một đối tượng đọc hoặc ghi, mã hóa ký tự mặc định của hệ điều hành được sử dụng (e. g. Cp1252 trên Windows).
FileReader reader = new FileReader("MyFile.txt");
FileWriter writer = new FileWriter("YourFile.txt");
Vì vậy, nếu chúng tôi muốn sử dụng một bộ ký tự cụ thể, hãy sử dụng InputStreamReader hoặc OutputStreamWriter instead. For example:
InputStreamReader reader = new InputStreamReader(
					new FileInputStream("MyFile.txt"), "UTF-16");
That creates a new reader with the Unicode character encoding UTF-16.And the following statement constructs a writer with the UTF-8 encoding:
OutputStreamWriter writer = new OutputStreamWriter(
					new FileOutputStream("YourFile.txt"), "UTF-8");
Trong trường hợp chúng tôi muốn sử dụng BufferedReader, chỉ cần bọc InputStreamReader . inside, for example:
InputStreamReader reader = new InputStreamReader(
		new FileInputStream("MyFile.txt"), "UTF-16");

BufferedReader bufReader = new BufferedReader(reader);
Và ví dụ về BufferedWriter .
OutputStreamWriter writer = new OutputStreamWriter(
					new FileOutputStream("YourFile.txt"), "UTF-8");

BufferedWriter bufWriter = new BufferedWriter(writer);
Bây giờ, hãy xem xét một số ví dụ hoàn chỉnh.

4. Đọc Java từ ví dụ tệp văn bản

Chương trình nhỏ sau đây đọc từng ký tự từ tệp MyFile. txt và in tất cả các ký tự ra bảng điều khiển đầu ra.
package net.codejava.io;

import java.io.FileReader;
import java.io.IOException;

/**
 * This program demonstrates how to read characters from a text file.
 * @author www.codejava.net
 *
 */
public class TextFileReadingExample1 {

	public static void main(String[] args) {
		try {
			FileReader reader = new FileReader("MyFile.txt");
			int character;

			while ((character = reader.read()) != -1) {
				System.out.print((char) character);
			}
			reader.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
Ví dụ sau đọc một tệp văn bản với giả định rằng mã hóa là UTF-16.
package net.codejava.io;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * This program demonstrates how to read characters from a text file using
 * a specified charset.
 * @author www.codejava.net
 *
 */
public class TextFileReadingExample2 {

	public static void main(String[] args) {
		try {
			FileInputStream inputStream = new FileInputStream("MyFile.txt");
			InputStreamReader reader = new InputStreamReader(inputStream, "UTF-16");
			int character;

			while ((character = reader.read()) != -1) {
				System.out.print((char) character);
			}
			reader.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
Và ví dụ sau sử dụng BufferedReader để đọc từng dòng của tệp văn bản (đây là cách hiệu quả và được ưa chuộng nhất).
package net.codejava.io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/**
 * This program demonstrates how to read characters from a text file
 * using a BufferedReader for efficiency.
 * @author www.codejava.net
 *
 */
public class TextFileReadingExample3 {

	public static void main(String[] args) {
		try {
			FileReader reader = new FileReader("MyFile.txt");
			BufferedReader bufferedReader = new BufferedReader(reader);

			String line;

			while ((line = bufferedReader.readLine()) != null) {
				System.out.println(line);
			}
			reader.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
 

5. Ví dụ về ghi Java vào tệp văn bản

Trong ví dụ sau, FileWriter được sử dụng để viết hai từ “Xin chào thế giới” và “Tạm biệt. ” vào tệp có tên MyFile. txt .
package net.codejava.io;

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

/**
 * This program demonstrates how to write characters to a text file.
 * @author www.codejava.net
 *
 */
public class TextFileWritingExample1 {

	public static void main(String[] args) {
		try {
			FileWriter writer = new FileWriter("MyFile.txt", true);
			writer.write("Hello World");
			writer.write("\r\n");	// write new line
			writer.write("Good Bye!");
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}
Lưu ý rằng, người viết mặc định sử dụng bảng mã ký tự mặc định của hệ điều hành. Nó cũng tạo một tệp mới nếu không tồn tại hoặc ghi đè lên tệp hiện có. Nếu bạn muốn nối văn bản vào một tệp hiện có, hãy chuyển cờ boolean true cho hàm tạo của lớp nhà văn.
FileReader reader = new FileReader("MyFile.txt");
FileWriter writer = new FileWriter("YourFile.txt");
0Ví dụ sau sử dụng BufferedReader bao quanh FileReader để nối thêm văn bản vào .
InputStreamReader reader = new InputStreamReader(
					new FileInputStream("MyFile.txt"), "UTF-16");
0Đây là cách ưa thích để ghi vào tệp văn bản vì BufferedReader cung cấp cách hiệu quả để ghi các luồng ký tự. Và ví dụ sau chỉ định mã hóa ký tự cụ thể (UTF-16) khi ghi vào tệp.
InputStreamReader reader = new InputStreamReader(
					new FileInputStream("MyFile.txt"), "UTF-16");
1Chương trình này viết một số chuỗi Unicode (tiếng Việt) vào tệp văn bản được chỉ định. LƯU Ý. Từ Java 7, bạn có thể sử dụng câu lệnh try-with-resources để đơn giản hóa mã mở và đóng trình đọc/ghi. Ví dụ.
InputStreamReader reader = new InputStreamReader(
					new FileInputStream("MyFile.txt"), "UTF-16");

Người giới thiệu

  • Bài học. I/O cơ bản (Hướng dẫn Java)
 

Tệp liên quan IO Hướng dẫn

  • Cách đọc và ghi tệp nhị phân trong Java
  • Cách đọc từng dòng tệp văn bản trong Java
  • Các ví dụ về Java IO FileReader và FileWriter

 

Các hướng dẫn IO tệp Java khác

  • Cách liệt kê các tệp và thư mục trong một thư mục trong Java
  • Java IO - Ví dụ về thao tác thư mục và tệp phổ biến
  • Ví dụ cơ bản về tuần tự hóa Java
  • Hiểu bên ngoài Java với các ví dụ
  • Cách thực thi Các lệnh của hệ điều hành trong Java
  • 3 cách để đọc đầu vào của người dùng từ bảng điều khiển trong Java
  • Ví dụ về thông báo thay đổi tệp với Watch Service API
  • Hướng dẫn về máy quét Java và các ví dụ về mã
  • Cách nén file định dạng ZIP trong Java
  • Cách giải nén tệp ZIP trong Java


Thông tin về các Tác giả

Bạn sử dụng lớp nào để đọc dữ liệu từ tệp văn bản?
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He started programming with Java in the time of Java 1.4 and has been falling in love with Java since then. Make friend with him on Facebook and watch his Java videos you YouTube.



Tệp đính kèm.

Bạn sử dụng lớp nào để đọc dữ liệu từ tệp văn bản?
Ví dụ TextFileReadWrite. zip[Mã nguồn Java]4 kB

Thêm bình luận

   

Báo cho tôi biết khi có comment mới

Gửi

Bình luận

12345

Arnav2022-01-11 17. 39

Cảm ơn bạn đã giải thích chi tiết bài tập đọc và viết

Vamsh2021-07-15 23. 36

codejava. net/. /

Ravindu10-12-2020 11. 04

Cảm ơn nhiều. Tôi đã gửi bài tập của mình bằng blog của bạn. Đây là một công việc tuyệt vời

D2020-03-20 14. 29

bài viết tuyệt vời. Cảm ơn đã giúp đỡ

Vladan M. Kostic2019-09-11 05. 05

Xin chào, đây là tài liệu hay dành cho nhà phát triển.
Điều quan trọng cần chỉ ra là cũng có các API Java cho phép các nhà phát triển tạo và chỉnh sửa các tệp MS Word, Excel hoặc ODF từ mã Java
Bạn đã thử chưa .
There are a number of use cases on the site and the API itself is well documented.

12345

Làm cách nào để đọc tệp txt trong java?

Có một số cách để đọc tệp văn bản thuần túy trong Java e. g. bạn có thể sử dụng FileReader, BufferedReader hoặc Scanner để đọc tệp văn bản. .
Sử dụng lớp BufferedReader
Sử dụng lớp Máy quét
Sử dụng lớp Trình đọc tệp
Đọc toàn bộ tệp trong Danh sách
Đọc một tệp văn bản dưới dạng Chuỗi

Những lớp nào được sử dụng để đọc và ghi dữ liệu vào tệp?

Java FileWriter và FileReader được sử dụng để ghi và đọc dữ liệu từ các tệp văn bản (chúng là các lớp Character Stream).

Làm cách nào để đọc tệp văn bản trong C#?

C# có thể được sử dụng để truy xuất và thao tác dữ liệu được lưu trữ trong tệp văn bản. Đọc một tệp văn bản. Lớp tệp trong C# định nghĩa hai phương thức tĩnh để đọc tệp văn bản là Tệp. ReadAllText() và Tệp. ReadAllLines() .

Lớp nào sau đây được sử dụng để đọc dữ liệu từ tệp trong Android?

InputStream là một lớp trong JAVA được sử dụng để đọc theo một chuỗi byte có thứ tự. Sử dụng nó, chúng ta có thể đọc các tập tin trên Android.