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

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

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ủ đề đọc tệp văn bản vào java

Lập trình Java – Cách đơn giản để Ghi dữ liệu và Đọc dữ liệu từ file – sử dụng BufferedWriter

  • Tác giả: Alias
  • Ngày đăng: 2020-10-30
  • Đánh giá: 4 ⭐ ( 4307 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: java code alias
    Lập trình dữ liệu, cách ghi dữ liệu và đọc dữ liệu từ file với BufferedWriter
    Nếu thấy video hữu ích thì bạn có thể donate cho admin để up nhiều video hơn nhé
    Bidv: 45210000394275
    Momo: 0345666656
    Trịnh Thế Hoàn
    ————————-
    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
    Mình nhận code website, dự án… dạy nhóm, gia sư 1-1 online cho các bạn ở xa, bạn nào cần cứ ib facebook hoặc mail cho mình nhé.
    Độ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 ạ.
    laptrinh
    code
    java
    c
    javascript
    html
    css

Cách đọc ghi file trong java

  • Tác giả: nguyenvanhieu.vn
  • Đánh giá: 5 ⭐ ( 1798 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.

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

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 3867 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…

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

  • Tác giả: stackjava.com
  • Đánh giá: 5 ⭐ ( 9833 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…

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

  • Tác giả: niithanoi.edu.vn
  • Đánh giá: 4 ⭐ ( 6454 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.

Hướng Dẫn Đọc File Text trong Java Sử Dụng “BufferedReader”

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 3 ⭐ ( 2765 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khi sử dụng class BufferedReader trong Java để đọc nội dung một file text thì chúng ta có hai cách khác nhau đó là sử dụng method readLine() hoặc read() của class nà…

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

  • Tác giả: viettuts.vn
  • Đánh giá: 4 ⭐ ( 6516 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lớp FileReader trong java được sử dụng để đọc dữ liệu từ file. Nó trả về dữ liệu theo định dạng byte như lớp FileInputStream. Đây là lớp định hướng ký tự

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  Thuộc tính lớp - cách thêm nhiều lớp trong html

By ads_php