Cổng Khoa học Máy tính dành cho những người yêu thích máy tính. Nó bao gồm các bài báo về khoa học máy tính và lập trình được viết tốt, tư duy tốt và được giải thích tốt, các câu đố và thực hành / lập trình cạnh tranh / các câu hỏi phỏng vấn công ty.

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

Có nhiều cách ghi và đọc tệp văn bản. điều này là bắt buộc khi xử lý nhiều ứng dụng. Có một số cách để đọc một tệp văn bản thuần túy trong Java, ví dụ: bạn có thể sử dụng FileReader , BufferedReader hoặc Scanner để đọc tệp văn bản. Mỗi tiện ích cung cấp một cái gì đó đặc biệt, ví dụ: BufferedReader cung cấp bộ đệm dữ liệu để đọc nhanh và Máy quét cung cấp khả năng phân tích cú pháp.

Phương pháp:

  1. Sử dụng lớp BufferedReader
  2. Sử dụng lớp Trình quét
  3. Sử dụng lớp Trình đọc tệp
  4. Đọc toàn bộ tệp trong một danh sách
  5. Đọc tệp văn bản dưới dạng chuỗi

Chúng ta cũng có thể sử dụng cả BufferReader và Scanner để đọc từng dòng tệp văn bản trong Java. Sau đó, Java SE 8 giới thiệu một lớp Stream khác java.util.stream.Stream cung cấp cách đọc tệp hiệu quả và lười biếng hơn.

Lưu ý Mẹo: Các phương pháp viết mã tốt như xả / đóng luồng, Xử lý ngoại lệ v.v.

Phương pháp 1: Sử dụng lớp BufferedReader

Phương thức này đọc văn bản từ luồng nhập ký tự. Nó làm bộ đệm để đọc các ký tự, mảng và dòng một cách hiệu quả. Kích thước bộ đệm có thể được chỉ định hoặc kích thước mặc định có thể được sử dụng. Giá trị mặc định đủ lớn cho hầu hết các mục đích. Nói chung, mỗi yêu cầu đọc được thực hiện bởi một Trình đọc gây ra một yêu cầu đọc tương ứng được thực hiện bằng ký tự cơ bản hoặc luồng byte. Do đó, chúng tôi khuyên bạn nên bọc một BufferedReader xung quanh bất kỳ Trình đọc nào có hoạt động read () có thể tốn kém, chẳng hạn như FileReaders và InputStreamReaders như được hiển thị bên dưới như sau:

 BufferedReader in = new BufferedReader (Reader in, int size) ; 

Ví dụ:

Java

< / p>

nhập java.io. *;

public class GFG {

public static void < / p>

{

Tệp tin = new Tệp (< / code>

"C: \\ Users \\ pankaj \\ Máy tính để bàn \\ test.txt " );

BufferedReader br

= new BufferedReader ( new < / code> FileReader (file));

Chuỗi st;

trong khi ((st = br.readLine ())! = null )

System.out.println (st);

}

}

 
 

Đầu ra:

 Nếu bạn muốn viết mã, hãy tham khảo GeeksforGeeks 

Phương pháp 2:

> Sử dụng lớp FileReader

Lớp tiện lợi để đọc các tệp ký tự. Các hàm tạo của lớp này giả định rằng mã hóa ký tự mặc định và kích thước bộ đệm byte mặc định là phù hợp.

Các trình xây dựng được định nghĩa trong lớp này như sau:

  1. FileReader (File tệp): Tạo một FileReader mới, được cung cấp cho File để đọc từ đó
  2. FileReader (FileDescriptor fd): Tạo FileReader mới, được cấp cho FileDescriptor để đọc từ
  3. FileReader (String fileName): Tạo FileReader mới, được đặt tên của tệp để đọc từ đó

Ví dụ:

Java

nhập java. io. *;

public class GFG {

public static void main (String [] args) ném Ngoại lệ

{

< code class = "undefined space">

FileReader fr = < code class = "keyword"> new FileReader (

"C: \\ Users \\ pankaj \\ Desktop \\ test.txt" );

int i;

while ((i = fr.read ())! = - 1 < / code> )

System.out.print (( char < / code> ) i);

< p class = "code-editor-container">

 
 

Đầu ra :

 Nếu bạn muốn viết mã, hãy tham khảo GeeksforGeeks 

Phương pháp 3: Sử dụng lớp Máy quét

Một trình quét văn bản đơn giản có thể phân tích cú pháp các kiểu và chuỗi nguyên thủy bằng cách sử dụng biểu thức chính quy. Máy quét chia đầu vào của nó thành các mã thông báo bằng cách sử dụng một mẫu dấu phân cách, theo mặc định sẽ khớp với khoảng trắng. Sau đó, các mã thông báo kết quả có thể được chuyển đổi thành các giá trị thuộc các loại khác nhau bằng các phương pháp tiếp theo khác nhau.

Ví dụ 1: Với việc sử dụng vòng lặp

Java


nhập java.io.File;

nhập java.util.Scanner;

public class ReadFromFileUsingScanner

{

public static void main (String [] args) throws Ngoại lệ

< p class = "line number9 index8 alt2"> {

Tệp tệp = mới Tệp ( "C: \\ Users \\ pankaj \\ Desktop \\ test.txt " );

Máy quét sc = new Máy quét (tệp);

while (sc.hasNextLine ())

System.out.println (sc.nextLine ()); < / code>

}

}

 
 

Đầu ra:

 Nếu bạn muốn viết mã, hãy tham khảo GeeksforGeeks  

Ví dụ 2: Không sử dụng vòng lặp

Java




< / p>

nhập java.io.File; < / code>

import java.io.FileNotFoundException; < / p>

nhập java.util.Scanner;

< p class = "line number7 index6 alt2">

public class ReadingEntireFileWithoutLoop

{

public static void main (String [] args)

ném FileNotFoundException

{

< code class = "trơn"> Tệp tin = new Tệp ( " C: \\ Users \\ pankaj \\ Desktop \\ test.txt " );

Máy quét sc = new Máy quét (tệp);

< code class = "undefined space"> sc.useDelimiter ( "\\ Z" );

System.out.println (sc.next ());

}

}

 
 

Đầu ra:

 Nếu bạn muốn viết mã, hãy tham khảo GeeksforGeeks 

Phương pháp 4: > Đọc toàn bộ tệp trong một danh sách

Đọc tất cả các dòng từ tệp. Phương pháp này đảm bảo rằng tệp được đóng khi tất cả các byte đã được đọc hoặc lỗi I / O, hoặc ngoại lệ thời gian chạy khác, được ném ra. Các byte từ tệp được giải mã thành các ký tự bằng cách sử dụng bộ ký tự được chỉ định.

Cú pháp:

 public static List readAllLines (Path path, Charset cs) ném IOException 

Phương thức này nhận dạng dòng sau đây terminators:

 \ u000D theo sau là \ u000A, CARRIAGE RETURN theo sau là LINE FEED
\ u000A, LINE FEED
\ u000D, QUAY LẠI HÀNG HÓA 

Ví dụ

Java

< / p>

nhập java.util. *;

nhập java .nio.charset.StandardCharsets;

nhập java.nio .file. *;

nhập java.io. * ;

public class ReadFileIntoList

{

public static Danh sách & lt; Chuỗi & gt; readFileInList (String fileName)

{

Danh sách & lt; Chuỗi & gt; lines = Collections.emptyList ();

thử < / code>

{

lines =

Files.readAllLines (Paths.get (fileName), StandardCharsets.UTF_8);

}

catch (IOException e )

{

e.printStackTrace ();

}

return lines;

}

public static void main (String [] args)

< p class = "line number28 index27 alt1"> {

Danh sách l = readFileInList ( "C: \\ Users \\ pankaj \\ Máy tính để bàn \\ test.java " );

Iterator & lt; String & gt; itr = l.iterator ();

while < / code> (itr.hasNext ())

System.out.println (itr.next ());

< / code> }

}

 
 

Đầu ra:

 Nếu bạn muốn viết mã, hãy tham khảo GeeksforGeeks 

Phương pháp 5: Đọc tệp văn bản dưới dạng chuỗi

< strong> Ví dụ

Java

< p>

package io;

nhập java.nio.file. * ;;

< p class = "line number7 index6 alt2">

public class ReadTextAsString {

public static Chuỗi readFileAsString (String fileName) ném Ngoại lệ

{

Dữ liệu chuỗi = "" ;

data = new String (Files.readAllBytes (Paths.get (fileName)));

< / code> return data;

}

public static void < / code> main (String [] args) < / code> ném Ngoại lệ

{

String data = readFileAsString ( "C: \\ Users \\ pankaj \\ Desktop \\ test.java" );

System.out.println (dữ liệu);

} < / p>

}

 
 

Đầu ra:

 Nếu bạn muốn tham khảo mã cho GeeksforGeeks 

Bài viết này được đóng góp bởi targe Pankaj Kumar . Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng write.geeksforgeeks.org hoặc gửi bài viết của bạn qua thư tới review-team@geeksforgeeks.org. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp những Geeks khác. Vui lòng viết bình luận nếu bạn thấy bất kỳ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề đã thảo luận ở trên.

Ghi chú cá nhân của tôi


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

Java read CSV File 📰

  • Tác giả: Bro Code
  • Ngày đăng: 2020-07-06
  • Đánh giá: 4 ⭐ ( 9427 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: IMPORTANT NOTE: If values in your CSV contain commas naturally, they will be split. (Ex. $1,000). If this is the case, replace:

    String[] row = line.split(",");
    with
    String[] row = line.split(",(?=([^\\"]*\\"[^\\"]*\\")*[^\\"]*$)");

    ^ This is regex and is very complicated. It looks for string patterns. Explaining this requires another video entirely.
    //******************************************************
    import java.io.*;

    public class Main {

    public static void main(String[] args) {

    //CSV = Comma-Separated Values
    // text file that uses a comma to separate values

    String file = "src\\\\students.csv";
    BufferedReader reader = null;
    String line = "";

    try {
    reader = new BufferedReader(new FileReader(file));
    while((line = reader.readLine()) != null) {

    String[] row = line.split(",");
    //String[] row = line.split(",(?=([^\\"]*\\"[^\\"]*\\")*[^\\"]*$)");
    //use this if your values already contain commas
    for(String index : row) {
    System.out.printf("%-10s", index);
    }
    System.out.println();
    }
    }
    catch(Exception e) {
    e.printStackTrace();
    }
    finally {
    try {
    reader.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }
    //******************************************************

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

  • Tác giả: viettuts.vn
  • Đánh giá: 3 ⭐ ( 8483 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 file trong java với lớp BufferedReader

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

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

  • Tác giả: niithanoi.edu.vn
  • Đánh giá: 5 ⭐ ( 2142 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á: 5 ⭐ ( 7947 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 ghi file MS Word bằng Java với Apache POI

  • Tác giả: stackjava.com
  • Đánh giá: 3 ⭐ ( 4630 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 file với lớp BufferedReader

  • Tác giả: hiepsiit.com
  • Đánh giá: 4 ⭐ ( 9486 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  Python cho các vòng lặp - cho cú pháp trong python

By ads_php