Các ví dụ mã Java hữu ích để đọc và ghi tệp văn bản

Bạn đang xem: java đọc trong tệp văn bản

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

Trong hướng dẫn này, chúng tôi chỉ cho bạn cách đọc và viết thành văn bản (hoặc ký tự) tệp sử dụng các lớp có sẵn trong gói

​​

java.io

. Trước tiên, hãy xem xét các lớp khác nhau có khả năng đọc và ghi các luồng ký tự.

1. Reader, InputStreamReader, FileReader và BufferedReader

Reader

là lớp trừu tượng để đọc các luồng ký tự. Nó triển khai các phương thức cơ bản sau:

  • read ()

    : đọ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ự.

  • close ()

    : đóng luồng.

InputStreamReader

là cầu nối từ luồng byte đến luồng ký tự. Nó chuyển đổi các byte thành các ký tự bằng cách sử dụng một bộ ký tự được chỉ định. Bộ ký tự có thể là mã 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 một

InputStreamReader

.

< p> FileReader

là một lớp thuận tiện để đọc các tệp văn bản bằng cách sử dụng mã hóa ký tự mặc định của hệ điều hành.

BufferedReader

>

đọc văn bản từ một luồng ký tự một cách hiệu quả (các ký tự được đệm để tránh thường xuyên đọc từ luồng bên dưới) và cung cấp một phương pháp thuận tiện để đọc một dòng văn bản

readLine () < /p>

Biểu đồ sau cho thấy mối quan hệ của các lớp trình đọc này trong gói

​​

java.io

: < h2>

2. Writer, OutputStreamWriter, FileWriter và BufferedWriter

Người viết

là lớp trừu tượng để viết các luồng ký tự. Nó triển khai các phương thức cơ bản sau:

  • write (int)

    : viết một ký tự.

  • write (char [])

    : viết một mảng ký tự.

  • write (Chuỗi)

    : viết một chuỗi.

  • close ()

    < / p>: đóng luồng.

OutputStreamWriter

là cầu nối từ luồng byte đến luồng ký tự. Các ký tự được mã hóa thành byte bằng cách sử dụng một bộ ký tự được chỉ định. Bộ ký tự có thể là mã 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 một

OutputStreamWriter

.

< p> FileWriter

là một lớp thuận tiện để viết các tệp văn bản bằng cách sử dụng mã hóa ký tự mặc định của hệ điều hành.

BufferedWriter

>

viết 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 đệm để tránh thường xuyên ghi vào luồng bên dưới) và cung cấp một phương pháp thuận tiện để viết dấu phân cách dòng:

newLine ()

. Biểu đồ sau cho thấy mối quan hệ của các lớp trình viết này trong

java.io

gói:

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

Khi xây dựng đối tượng trình đọc hoặc người viết, mã hóa ký tự mặc định của hệ điều hành sẽ được sử dụng (ví dụ: Cp1252 trên Windows):

 FileReader reader = mới FileReader ("MyFile.txt");
FileWriterriter = new FileWriter ("YourFile.txt"); 

Vì vậy, nếu chúng ta muốn sử dụng một bộ ký tự cụ thể, hãy sử dụng

InputStreamReader

hoặc

Thay vào đó, OutputStreamWriter

. Ví dụ:

 InputStreamReader reader = new InputStreamReader (
new FileInputStream ("MyFile.txt"), "UTF-16"); 

Điều đó tạo ra một trình đọc mới với mã hóa ký tự Unicode UTF-16.Và câu lệnh sau xây dựng một trình viết với mã hóa UTF-8: < pre class = "brush: java"> OutputStreamWriterriter = 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

bên trong, ví dụ:

 InputStreamReader reader = new InputStreamReader (
new FileInputStream ("MyFile.txt"), "UTF-16");

BufferedReader bufReader = new BufferedReader (trình đọc); 

Và đối với một ví dụ

BufferedWriter

:

 OutputStreamWriterriter = new OutputStreamWriter (
new FileOutputStream ("YourFile.txt"), "UTF-8");

BufferedWriter bufWriter = new BufferedWriter (nhà văn); 

Bây giờ, hãy xem một số ví dụ hoàn chỉnh.

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

Chương trình nhỏ sau đây đọc từng ký tự đơn lẻ từ tệp

MyFile.txt

và in tất cả các ký tự ra bảng điều khiển đầu ra:

 gói net.codejava.io;

nhập java.io.FileReader;
nhập java.io.IOException;

/ **
 * Chương trình này trình bày cách đọc các ký tự từ tệp văn bản.
 * @author www.codejava.net
 *
 * /
public class TextFileReadingExample1 {

public static void main (String [] args) {
thử {
FileReader reader = new FileReader ("MyFile.txt");
ký tự int;

while ((character = reader.read ())! = -1) {
Ký tự System.out.print ((char));
}
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;

nhập java.io.FileInputStream;
nhập java.io.IOException;
nhập java.io.InputStreamReader;

/ **
 * Chương trình này trình bày cách đọc các ký tự từ tệp văn bản bằng cách sử dụng
 * một bộ ký tự được chỉ định.
 * @author www.codejava.net
 *
 * /
public class TextFileReadingExample2 {

public static void main (String [] args) {
thử {
FileInputStream inputStream = new FileInputStream ("MyFile.txt");
Đầu đọc InputStreamReader = new InputStreamReader (inputStream, "UTF-16");
ký tự int;

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

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

} 

Và ví dụ sau sử dụng

BufferedReader

để đọc từng dòng một tệp văn bản (đây là cách hiệu quả và ưu tiên nhất):

 gói net.codejava.io;

nhập java.io.BufferedReader;
nhập java.io.FileReader;
nhập java.io.IOException;

/ **
 * Chương trình này trình bày cách đọc các ký tự từ tệp văn bản
 * sử dụng BufferedReader để đạt hiệu quả.
 * @author www.codejava.net
 *
 * /
public class TextFileReadingExample3 {

public static void main (String [] args) {
thử {
FileReader reader = new FileReader ("MyFile.txt");
BufferedReader đệmReader = new BufferedReader (trình đọc);

Dòng chuỗi;

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

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

} 

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

Trong ví dụ sau,

FileWriter

được sử dụng để viết hai từ “Hello World” và “Good Bye! ” tới tệp có tên

MyFile.txt

:

 package net.codejava.io;

nhập java.io.FileWriter;
nhập java.io.IOException;

/ **
 * Chương trình này trình bày cách ghi các ký tự vào tệp văn bản.
 * @author www.codejava.net
 *
 * /
lớp công khai TextFileWritingExample1 {

public static void main (String [] args) {
thử {
FileWriterriter = new FileWriter ("MyFile.txt", true);
riter.write ("Xin chào Thế giới");
riter.write ("\ r \ n"); // viết dòng mới
riter.write ("Tạm biệt!");
nhà văn.close ();
} catch (IOException e) {
e.printStackTrace ();
}

}

} 

Lưu ý rằng, người viết sử dụng mã hóa ký tự mặc định của hệ điều hành theo mặc định. Nó cũng tạo một tệp mới nếu không thoát hoặc ghi đè 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 một cờ boolean có giá trị true vào phương thức khởi tạo của lớp writer:

 FileWriterriter = new FileWriter ("MyFile.txt", true); < / pre> Ví dụ sau sử dụng  

BufferedReader

bao bọc

FileReader

để nối văn bản vào một tệp hiện có: < pre class = "brush: java"> gói net.codejava.io; nhập java.io.BufferedWriter; nhập java.io.FileWriter; nhập java.io.IOException; / ** * Chương trình này trình bày cách ghi các ký tự vào tệp văn bản * sử dụng BufferedReader để đạt hiệu quả. * @author www.codejava.net * * / lớp công khai TextFileWritingExample2 { public static void main (String [] args) { thử { FileWriterriter = new FileWriter ("MyFile.txt", true); BufferedWriter bufferedWriter = new BufferedWriter (nhà văn); bufferedWriter.write ("Xin chào Thế giới"); bufferedWriter.newLine (); bufferedWriter.write ("Hẹn gặp lại!"); bufferedWriter.close (); } catch (IOException e) { e.printStackTrace (); } } }

Đâ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ả để viết các luồng ký tự. Ví dụ sau chỉ định mã hóa ký tự cụ thể (UTF-16) khi ghi vào tệp:

 package net.codejava.io;

nhập java.io.BufferedWriter;
nhập java.io.FileOutputStream;
nhập java.io.IOException;
nhập java.io.OutputStreamWriter;

/ **
 * Chương trình này trình bày cách ghi các ký tự vào tệp văn bản bằng cách sử dụng
 * một bộ ký tự được chỉ định.
 * @author www.codejava.net
 *
 * /
lớp công khai TextFileWritingExample3 {

public static void main (String [] args) {
thử {
FileOutputStream outputStream = new FileOutputStream ("MyFile.txt");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter (outputStream, "UTF-16");
BufferedWriter bufferedWriter = new BufferedWriter (outputStreamWriter);

bufferedWriter.write ("Xin chào");
bufferedWriter.newLine ();
bufferedWriter.write ("Hẹn gặp lại!");

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

}
} 

Chương trình này ghi 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

 thử (FileReader reader = new FileReader ("MyFile.txt")) {
ký tự int;

while ((character = reader.read ())! = -1) {
Ký tự System.out.print ((char));
}
} catch (IOException e) {
e.printStackTrace ();
} 

Tham khảo:

Hướng dẫn IO về Tệp Liên quan:

Các hướng dẫn IO về Tệp Java khác:

Giới thiệu về Tác giả:

là lập trình viên Java được chứng nhận ( SCJP và SCWCD). Anh bắt đầu lập trình với Java từ thời Java 1.4 và bắt đầu yêu Java kể từ đó. Kết bạn với anh ấy trên

lập trình viên Java được chứng nhận (SCJP và SCWCD). Anh bắt đầu lập trình với Java từ thời Java 1.4 và bắt đầu yêu Java kể từ đó. Kết bạn với anh ấy trên Facebook và xem video Java của anh ấy trên YouTube. Phần đính kèm: TextFileReadWriteExamples.zip [mã nguồn Java] 4 kB

Thêm nhận xét

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 gói. Đầu tiên, hãy xem xét các lớp khác nhau có khả năng đọc và ghi các luồng ký tự. Là lớp trừu tượng để đọc các luồng ký tự. Nó thực hiện các phương thức cơ bản sau: là một cầu nối từ các luồng byte đến các luồng ký tự. Nó chuyển đổi các byte thành các ký tự bằng cách sử dụng một 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 anis một lớp thuận tiện để đọc các tệp văn bản bằng cách sử dụng mã hóa ký tự mặc định của hệ điều hành. Đọc văn bản từ luồng ký tự một cách hiệu quả (các ký tự được lưu vào bộ đệm tránh thường xuyên đọc từ luồng bên dưới) và cung cấp một phương pháp thuận tiện để đọc một dòng văn bản. Biểu đồ sau cho thấy mối quan hệ của các lớp trình đọc này trong gói: là lớp trừu tượng để viết các luồng ký tự. Nó thực hiện các phương thức cơ bản sau: là một cầu nối từ các luồng byte đến các luồng ký tự. Các ký tự được mã hóa thành byte bằng cách sử dụng một 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 anis một lớp thuận tiện để viết các tệp văn bản bằng cách sử dụng mã hóa ký tự mặc định của hệ điều hành. Ghi văn bản vào một dòng ký tự một cách hiệu quả (ký tự, mảng và chuỗi được đệm để tránh thường xuyên ghi vào dòng bên dưới) và cung cấp một phương pháp thuận tiện để viết dấu phân cách dòng:. Biểu đồ sau đây cho thấy mối quan hệ của các lớp người viết này trong gói: Khi xây dựng đối tượng người đọc hoặc người viết, mã hóa ký tự mặc định của hệ điều hành được sử dụng (ví dụ: Cp1252 trên Windows): 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 anorinstead. Ví dụ: Điều đó tạo ra một trình đọc mới với mã hóa ký tự Unicode UTF-16Và câu lệnh sau xây dựng một trình ghi với mã hóa UTF-8: Và đối với một ví dụ: Bây giờ, hãy xem một số ví dụ hoàn chỉnh. Chương trình nhỏ sau đây đọc mọi một ký tự từ tệp và in tất cả các ký tự ra bảng điều khiển đầu ra: Ví dụ sau đọc tệp văn bản với giả định rằng mã hóa là UTF-16: Và ví dụ sau sử dụng ato đọc từng dòng một tệp văn bản (đây là cách hiệu quả nhất và cách ưa thích): Trong ví dụ sau, ais đã sử dụng để viết hai từ “Hello World” và “Good Bye!” vào một tệp có tên Lưu ý rằng, người viết sử dụng mã hóa ký tự mặc định của hệ điều hành theo mặc định. Nó cũng tạo một tệp mới nếu không thoát hoặc ghi đè 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 có giá trị true vào phương thức khởi tạo của lớp nhà văn: Ví dụ sau sử dụng athat kết thúc ato nối văn bản vào tệp hiện có: Đây là cách ưa thích để ghi vào tệp văn bản vì chương trình cung cấp cách hiệu quả để viết 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: Chương trình này ghi một số chuỗi Unicode (tiếng Việt) vào tệp văn bản được chỉ định.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 / người viết. Ví dụ:


Xem thêm những thông tin liên quan đến chủ đề java đọc trong tệp văn bản

Java 72. Cách đọc dữ liệu văn bản text từ file trong lập trình Java

  • Tác giả: TITV
  • Ngày đăng: 2021-09-16
  • Đánh giá: 4 ⭐ ( 8692 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: ★ Khóa học miễn phí LậpTrìnhJava: https://bit.ly/2XSfJsO ★ LậpTrìnhC: https://bit.ly/3k7sA2B ★ Ủng hộ phát triển kênh: Momo,ZaloPay,ViettelPay: 0374568701 / STK: 109005606811 Vietinbank – CTK: Le Nhat Tung. ★ Link tải code: https://bit.ly/3AwCNeX
    ★ Khóa học Lập trình Java: bao gồm tất cả nội dung kiến thức về các công cụ lập trình IDE, Java Core, Các thuật toán, Lập trình hướng đối tượng Java, Cấu trúc dữ liệu Java, Xử lý tập tin trong Java, Lập trình giao diện AWT và Swing, Lập trình mạng Java, Sử dụng Java để tương tác với cơ sở dữ liệu, Lập trình xây dựng ứng dụng website trên nền tảng Java web, JSP và Servlet.
    Khóa học này cung cấp phần lớn kiến thức và kỹ năng về ngôn ngữ lập trình java và là bước đệm cho các lập trình viên muốn tìm hiểu tiếp ngôn ngữ lập trình Android.
    Khóa học này phù hợp cho các bạn mới bắt đầu học Lập trình Java, hoặc các bạn muốn ôn tập lại kiến thức một cách hệ thống và mạch lạc để chuẩn bị đi làm.
    ★ Bạn cũng có thể tìm thấy các khóa học về ngôn ngữ khác tại đây: https://www.youtube.com/c/TITVvn
    ★ Cácn bạn vui lòng đăng ký kênh (Subscribe) và chia sẻ video (Share) đến các bạn cùng lớp nhé.
    ★ Diễn đàn hỏi đáp: https://www.facebook.com/groups/titv.vn
    ★ Facebook: https://www.facebook.com/tung.lenhat
    ★ Website: http://titv.vn, http://titv.edu.vn
    =================================
    ✩ Hộp thư đóng góp ý kiến hoặc ý tưởng: lenhattung@gmail.com
    =================================
    © Bản quyền thuộc về TITV ☞ Vui lòng không đăng tải lại Video từ kênh này
    © Copyright by TITV Channel ☞ Do not Re-up

3 Cách đọc File trong Java Phổ biến nhất

  • Tác giả: niithanoi.edu.vn
  • Đánh giá: 4 ⭐ ( 7160 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đọc file trong Java là một kỹ thuật quan trọng cần phải nắm nếu muốn làm việc sâu hơn với Java. Và bài viết này mình sẽ hướng dẫn bạn một số cách đọc file phổ biến.

Đọc file với lớp BufferedReader

  • Tác giả: hiepsiit.com
  • Đánh giá: 4 ⭐ ( 2257 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Đọc file trong java với lớp BufferedReader

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 2102 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lớp BufferedReader trong java được sử dụng để đọc văn bản từ một input stream dựa trên các ký tự. Nó có thể được sử dụng để đọc dòng dữ liệu theo dòng

Cách đọc ghi file trong java

  • Tác giả: nguyenvanhieu.vn
  • Đánh giá: 3 ⭐ ( 6632 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: CÁCH ĐỌC GHI FILE TRONG JAVA. Xin chào các bạn lại là mình đây, hôm nay mình quyết định viết một bài để hướng dẫn các bạn cách đọc ghi file trong Java.

Đọc file trong java với lớp BufferedReader

  • Tác giả: hoclaptrinh.vn
  • Đánh giá: 4 ⭐ ( 6108 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lớp BufferedReader trong java được sử dụng để đọc văn bản từ một input stream dựa trên các ký tự (character stream). Nó có thể được sử dụng để đọc dữ liệu t…

Java: Cách đọc tệp văn bản

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 2173 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Bạn có thể sử dụng Files#readAllLines()để chuyển tất cả các dòng của tệp văn bản thành…

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Hướng dẫn C ++ - cách khai báo một hằng trong c ++

By ads_php