Cách đọc và ghi tệp văn bản trong Java – đọc 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 tệp văn bản trong java

Cách thực hiện Đọ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 tệp văn bản trong java

Java: Read Text File Easily

  • Tác giả: Alex Lee
  • Ngày đăng: 2018-12-13
  • Đánh giá: 4 ⭐ ( 1499 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Full Java Course: https://course.alexlorenlee.com/courses/learn-java-fast
    Get my favorite programming audiobook for free! https://audibletrial.com/alexleefree
    Free tips: https://bit.ly/3vuD81C

    Springboard Software Engineering BootCamp (Use my code ALEXLEE for $1000 USD off): https://bit.ly/3EZp0As
    If you’re new to programming, I recommend solving challenges on Edabit: https://edabit.com/?ref=alexlee
    20% off Brain.fm (awesome): https://www.brain.fm/alexlee20
    20% off Brilliant subscription: https://brilliant.sjv.io/alexlee20
    Java Certificate: https://imp.i384100.net/CourseraJava
    Tabnine autocomplete: https://bit.ly/3ilJLMQ
    Get SERVICE HOURS as an online tutor or FREE ONLINE TUTORING for K-8 students: https://connectmego.org/

    Store: https://qaya.store/alex-lee

    I show you exactly how to read and write text files, line by line in java! ✅ Simply write this code to open the file and get the text from it line by line using a scanner.

    Learn java in just 13 minutes: https://youtu.be/RRubcjpTkks

    The text file I used: http://textfiles.com/100/captmidn.txt

    Java made it easy for reading from files and writing to files. First, open the file by creating using File(“path/to/file.txt”); then scan through the file line by line using Scanner to read from the file. If you want to write to a new file simply use FileWriter(“”path/to/newfile.txt””);

    You’ll get the hang of reading from files and writing to files in java! They aren’t too bad 🙂 To read file line by line and to write a file in java are very similar. There a few quirks like importing the libraries and adding the “Exceptions” but once you get those and the paths right, you should be good to go!

    💻 Source Code: https://github.com/alexlorenlee/JavaTutorialCode/blob/master/Programs/ReadFile.java

    I hope you enjoyed this tutorial on java file reading and writing! I like to have a nice mix of tutorials and actual projects for you all 🙂

    Do you want to learn how to code from scratch, in Java? Check out my Java Tutorial For Beginners: https://youtu.be/woJb2hAfkO0

    Was this helpful for you? If you have questions about reading files in java or writing files in java, please ask in the comments, there are a lot of people just like you –

    Disclosure: Springboard, Brilliant, Audible, Brain.fm, Edabit, Tabnine links provided are linked to my affiliate accounts & support the channel.

    ~
    https://instagram.com/alexlorenlee

    Alex Lee

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

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

Tổng hợp cách đọc file text trong java

  • Tác giả: shareprogramming.net
  • Đánh giá: 3 ⭐ ( 4067 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chúng ta có thể sử dụng hầu hết các subclass của InputStream như FileInputStream, BufferedInputStream, ObjectInputStream etc hoặc các subclass của Inpu

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

  • Tác giả: viettuts.vn
  • Đánh giá: 3 ⭐ ( 7078 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ự

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

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

Xử lý file trong Java

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 4 ⭐ ( 5598 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Xử lý file trong Java – Lập Trình Từ Đầu a Xử lý File trong JAVA

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

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

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  Số, Ngôi sao, Mẫu bảng chữ cái - lớp mẫu trong java