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

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

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

Cách đọc và ghi 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ã 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 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 đây 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ã 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 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 tá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 là 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 đây đọ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
 *
 * /
lớp công khai 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 một 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);
writer.write ("Xin chào Thế giới");
riter.write ("\ r \ n"); // viết dòng mới
writer.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. 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ự. 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 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. Sơ đồ 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:. Sơ đồ 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 tạo ra một trình viết 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ệp văn bản từng dòng (đây là cách hiệu quả nhất và cách ưa thích): Trong ví dụ sau, ais thườ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 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ì các sản phẩm 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ủ đề cách đọc và ghi tệp văn bản trong java

Lập trình Java – Ghi object vào trong file txt và đọc object ra

  • Tác giả: Alias
  • Ngày đăng: 2020-02-17
  • Đánh giá: 4 ⭐ ( 6160 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: java code alias
    How to write object to file and read object from file
    Tiếp tục list video lập trình Java, ở video này mình giới thiệu tới các bạn cách write (ghi) object vào trong file txt hoặc file dat. Sau đó đọc (read) object từ file txt ra.
    Một điều quan trọng là object cần phải implements Serializable
    và có hàm toString().
    Link group học code: http://bit.ly/39eFZOi
    Link facebook cá nhân: http://bit.ly/38fi69c
    Link website: http://Alias.vn/
    Link đăng kí kênh để nhận video free: http://bit.ly/2SyBebr
    Đội ngũ Alias chuyên support IT cho các bạn ở đại học FPT Hà Nội – Ngoài ra còn support IT cho các bạn ở đại học Quốc Gia và Bách Khoa…
    Channel hướng dẫn các bạn lập trình C, C, C++, Java, Java desk, Java Web, jsp – servlet, web service, asp.net đồng thời hướng dẫn các bạn các thủ thuật hữu ích giúp cuộc sống đơn giản và dễ dàng hơn.
    Nếu nhạc nền bị gặp vấn đề bản quyền. Mong các bạn gửi mail tới trinhthehoan989@gmail.com. Mình sẽ trả lời lại trong vòng 2h ạ.

Đọc và Ghi File PDF trong Java

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 6151 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: PDF (Portable Document Format) là một định dạng tập tin văn bản khá phổ biển của hãng Adobe Systems. Tương tự như định dạng Word (.doc), PDF hỗ trợ văn bản thô (text) cùng với phông chữ, hình ảnh đồ…

JAVA là file gì? Cách mở, chỉnh sửa và chuyển đổi file JAVA

  • Tác giả: quantrimang.com
  • Đánh giá: 3 ⭐ ( 7353 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Một tệp có phần mở rộng đuôi .JAVA là (hoặc đôi khi cũng được sử dụng dưới định dạng .JAV) là tệp mã nguồn Java được viết bằng ngôn ngữ lập trình Java.

Đọc/Ghi file văn bản

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

Đọc ghi file MS Word bằng Java với Apache POI

  • Tác giả: stackjava.com
  • Đánh giá: 4 ⭐ ( 9387 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đọc ghi file MS Word bằng Java với Apache POI. Apache POI là một thư viện mã nguồn mở cung cấp bởi apache được sử dụng để xử lý các file office như word, excel, powerpoint…

Đọc và ghi file trong java (Bài 5)

  • Tác giả: giasutinhoc.vn
  • Đánh giá: 3 ⭐ ( 7588 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Cách tạo, đọc và ghi file trong Java

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

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  11 cách để căn giữa Div hoặc văn bản trong Div trong CSS - html center div trên trang