Hướng Dẫn Và Ví Dụ Java BufferedReader - Openplanning

  • Tất cả tài liệu
  • Java
    • Java Basic
    • Java Collections Framework
    • Java IO
    • Java New IO
    • Java Date Time
    • Servlet/JSP
    • Eclipse Tech
      • SWT
      • RCP
      • RAP
      • Eclipse Plugin Tools
    • XML & HTML
    • Java Opensource
    • Java Application Servers
  • Maven
  • Gradle
  • Servlet/Jsp
  • Thymeleaf
  • Spring
    • Spring Boot
    • Spring Cloud
  • Struts2
  • Hibernate
  • Java Web Service
  • JavaFX
  • SWT
  • Oracle ADF
  • Android
  • iOS
  • Python
  • Swift
  • C#
  • C/C++
  • Ruby
  • Dart
  • Batch
  • Database
    • Oracle
    • MySQL
    • SQL Server
    • PostGres
    • Other Database
  • Oracle APEX
  • Report
  • Client
  • ECMAScript / Javascript
  • TypeScript
  • NodeJS
  • ReactJS
  • Flutter
  • AngularJS
  • HTML
  • CSS
  • Bootstrap
  • OS
    • Ubuntu
    • Solaris
    • Mac OS
  • VPS
  • Git
  • SAP
  • Amazon AWS
  • Khác
    • Chưa phân loại
    • Phần mềm & ứng dụng tiện ích
    • VirtualBox
    • VmWare
Hướng dẫn và ví dụ Java BufferedReader
  1. BufferedReader
  2. BufferedReader vs Scanner
  3. Examples
  4. lines()

1. BufferedReader

BufferedReader là một lớp con của Reader, được sử dụng để đơn giản hoá việc đọc văn bản từ các luồng đầu vào ký tự (character input stream), và nâng cao hiệu suất của chương trình.
  • Writer
  • InputStream
  • OutputStream
  • Reader
  • LineNumberReader
  • PushbackReader
  • FilterReader
  • CharArrayReader
  • PipedReader
  • StringReader
  • InputStreamReader
  • FileReader
Nguyên tắc hoạt động của BufferedReader giống như hình minh hoạ dưới đây:BufferedReader gói bên trong nó một đối tượng Reader, đối tượng này sẽ tự động đọc dữ liệu từ nguồn gốc (chẳng hạn file) và lưu trữ vào buffer (bộ đệm) của BufferedReader.BufferedReader ghi đè (override) các phương thức thừa kế từ lớp cha của nó, chẳng hạn như read(), read(char[]),... để đảm bảo rằng chúng sẽ thao tác với dữ liệu từ buffer chứ không phải từ nguồn gốc (chẳng hạn file). Ngoài ra BufferedReader cũng cung cấp phương thức readLine() để đọc một dòng văn bản từ buffer.Cái gọi là "buffer" được đề cập ở phía trên thực tế chỉ là một mảng các ký tự. Đối tượng Reader (của BufferedReader) sẽ tự động đọc các ký tự từ nguồn gốc để lưu trữ vào mảng này.BufferedReader đọc các ký tự từ mảng buffer và giải phóng các vị trí đã đọc, các vị trí được giải phóng sẽ được sử dụng để lưu trữ các ký tự mới đọc được từ nguồn gốc.BufferedReader constructorspublic BufferedReader(Reader in) public BufferedReader(Reader in, int sz)
  • Contructor BufferedReader(Reader,int) tạo ra một đối tượng BufferedReader với mảng buffer có kích thước được chỉ định.
  • Contructor BufferedReader(Reader) tạo ra một đối tượng BufferedReader với mảng buffer có kích thước mặc định (sz = 8192).

2. BufferedReader vs Scanner

Trong một số trường hợp bạn có thể cân nhắc sử dụng Scanner thay vì BufferedReader, dưới đây là sự so sánh giữa 2 lớp này:
  • BufferedReader được đồng bộ hóa (an toàn theo luồng - thread-safe) trong khi Scanner thì không.
  • Scanner 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.
  • BufferedReader cho phép chỉ định kích thước của buffer trong khi Scanner có kích thước buffer cố định (1024).
  • BufferedReader có kích thước buffer mặc định lớn hơn.
  • Scanner ẩn IOException, trong khi BufferedReader buộc chúng ta phải xử lý nó.
  • BufferedReader thường nhanh hơn Scanner vì nó chỉ đọc dữ liệu mà không phân tích cú pháp.
  • Hướng dẫn và ví dụ Java Scanner

3. Examples

Để tạo một đối tượng BufferedReader chúng ta cần tạo một đối tượng Reader để đọc dữ liệu từ nguồn gốc (chẳng hạn từ File). Vì Reader là một lớp trừu tượng vì vậy bạn cần tạo nó từ một trong các lớp con của nó.Ví dụ: Tạo một BufferedReader với kích thước mảng buffer16384. Chú ý: Kiểu dữ liệu char của Java2 bytes. Điều đó có nghĩa là buffer này có dung lượng 32786 bytes (32 KB).// Create Reader to read a file. Reader reader = new FileReader("/Volumes/Data/test/test.txt"); // Create a BufferedReader with buffer array size of 16384 (32786 bytes = 32 KB). BufferedReader br = new BufferedReader(reader, 16384);Tạo một BufferedReader với kích thước mảng buffer mặc định (8192), tương đương với 16384 bytes (16 KB).// Create Reader to read a file. Reader reader = new FileReader("/Volumes/Data/test/test.txt"); // Create a BufferedReader with default buffer array size of 8192 (16384 bytes = 16 KB). BufferedReader br = new BufferedReader(reader);Thay vì tạo BufferedReader từ constructor của nó, bạn có thể tạo một BufferedReader theo cách sau:BufferedReader br = Files.newBufferedReader(Paths.get("/Volumes/Data/test/test.txt"));Ví dụ: Sử dụng phương thức readLine() của BufferedReader để đọc từng dòng văn bản.test.txtJava Tutorials: Java Reader Tutorial Java Writer TutorialBufferedReaderEx1.javapackage org.o7planning.bufferedreader.ex; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class BufferedReaderEx1 { public static void main(String[] args) throws IOException { // Create Reader to read a file. Reader reader = new FileReader("/Volumes/Data/test/test.txt"); // Create a BufferedReader with buffer array size of 16384 (32786 bytes = 32 KB). BufferedReader br = new BufferedReader(reader, 16384); String line = null; while((line = br.readLine())!= null) { System.out.println(line); } br.close(); } }Output:Java Tutorials: Java Reader Tutorial Java Writer TutorialVí dụ: Sử dụng BufferedReader để đọc một URL:BufferedReaderEx2.javapackage org.o7planning.bufferedreader.ex; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.URL; public class BufferedReaderEx2 { public static void main(String[] args) throws IOException { URL oracleURL = new URL("https://www.oracle.com/"); InputStream inputStream = oracleURL.openStream(); // Create a Reader from its subclass InputStreamReader. Reader reader = new InputStreamReader(inputStream); BufferedReader br = new BufferedReader(reader); String inputLine = null; while ((inputLine = br.readLine()) != null) { System.out.println(inputLine); } br.close(); } }
  • Hướng dẫn và ví dụ Java BufferedWriter

4. lines()

Trả về một Stream, các phần tử của nó là các dòng văn bản đọc từ BufferedReader. Stream này là lười nhác, việc đọc chỉ diễn ra khi người dùng thực sự cần tới dữ liệu.public Stream<String> lines()
  • Hướng dẫn và ví dụ Java Stream
students.txt# Students: John P Sarah M # Sarah B Charles B Mary T Sophia BVí dụ: Đọc một file văn bản chứa danh sách tên các Sinh viên, loại bỏ các dòng chú thích (comment) bắt đầu bởi ký tự '#', và in ra những dòng kết thúc bởi chữ "B".BufferedReader_lines_ex1.javapackage org.o7planning.bufferedreader.ex; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.util.stream.Stream; public class BufferedReader_lines_ex1 { public static void main(String[] args) throws IOException { Reader reader = new FileReader("/Volumes/Data/test/students.txt"); BufferedReader br = new BufferedReader(reader, 16384); Stream<String> stream = br.lines(); stream // .filter(line -> { return !line.trim().startsWith("#") && line.endsWith("B"); }) .forEach(System.out::println); br.close(); } }Output:Charles B Sophia B

Các hướng dẫn Java IO

  • Hướng dẫn và ví dụ Java CharArrayWriter
  • Hướng dẫn và ví dụ Java FilterReader
  • Hướng dẫn và ví dụ Java FilterWriter
  • Hướng dẫn và ví dụ Java PrintStream
  • Hướng dẫn và ví dụ Java BufferedReader
  • Hướng dẫn và ví dụ Java BufferedWriter
  • Hướng dẫn và ví dụ Java StringReader
  • Hướng dẫn và ví dụ Java StringWriter
  • Hướng dẫn và ví dụ Java PipedReader
  • Hướng dẫn và ví dụ Java LineNumberReader
  • Hướng dẫn và ví dụ Java PushbackReader
  • Hướng dẫn và ví dụ Java PrintWriter
  • Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
  • Hướng dẫn sử dụng luồng vào ra ký tự trong Java
  • Hướng dẫn và ví dụ Java BufferedOutputStream
  • Hướng dẫn và ví dụ Java ByteArrayOutputStream
  • Hướng dẫn và ví dụ Java DataOutputStream
  • Hướng dẫn và ví dụ Java PipedInputStream
  • Hướng dẫn và ví dụ Java OutputStream
  • Hướng dẫn và ví dụ Java ObjectOutputStream
  • Hướng dẫn và ví dụ Java PushbackInputStream
  • Hướng dẫn và ví dụ Java SequenceInputStream
  • Hướng dẫn và ví dụ Java BufferedInputStream
  • Hướng dẫn và ví dụ Java Reader
  • Hướng dẫn và ví dụ Java Writer
  • Hướng dẫn và ví dụ Java FileReader
  • Hướng dẫn và ví dụ Java FileWriter
  • Hướng dẫn và ví dụ Java CharArrayReader
  • Hướng dẫn và ví dụ Java ByteArrayInputStream
  • Hướng dẫn và ví dụ Java DataInputStream
  • Hướng dẫn và ví dụ Java ObjectInputStream
  • Hướng dẫn và ví dụ Java InputStreamReader
  • Hướng dẫn và ví dụ Java OutputStreamWriter
  • Hướng dẫn và ví dụ Java InputStream
  • Hướng dẫn và ví dụ Java FileInputStream
Show More
  • Hướng dẫn lập trình Java Servlet/JSP
  • Các hướng dẫn Java New IO
  • Các hướng dẫn Spring Cloud
  • Các hướng dẫn Java Oracle ADF
  • Các hướng dẫn Java Collections Framework
  • Java cơ bản
  • Các hướng dẫn Java Date Time
  • Các thư viện mã nguồn mở Java
  • Các hướng dẫn Java Web Services
  • Các hướng dẫn Struts2 Framework
  • Các hướng dẫn Spring Boot

Các hướng dẫn Java IO

  • Hướng dẫn và ví dụ Java CharArrayWriter
  • Hướng dẫn và ví dụ Java FilterReader
  • Hướng dẫn và ví dụ Java FilterWriter
  • Hướng dẫn và ví dụ Java PrintStream
  • Hướng dẫn và ví dụ Java BufferedReader
  • Hướng dẫn và ví dụ Java BufferedWriter
  • Hướng dẫn và ví dụ Java StringReader
  • Hướng dẫn và ví dụ Java StringWriter
  • Hướng dẫn và ví dụ Java PipedReader
  • Hướng dẫn và ví dụ Java LineNumberReader
  • Hướng dẫn và ví dụ Java PushbackReader
  • Hướng dẫn và ví dụ Java PrintWriter
  • Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
  • Hướng dẫn sử dụng luồng vào ra ký tự trong Java
  • Hướng dẫn và ví dụ Java BufferedOutputStream
  • Hướng dẫn và ví dụ Java ByteArrayOutputStream
  • Hướng dẫn và ví dụ Java DataOutputStream
  • Hướng dẫn và ví dụ Java PipedInputStream
  • Hướng dẫn và ví dụ Java OutputStream
  • Hướng dẫn và ví dụ Java ObjectOutputStream
  • Hướng dẫn và ví dụ Java PushbackInputStream
  • Hướng dẫn và ví dụ Java SequenceInputStream
  • Hướng dẫn và ví dụ Java BufferedInputStream
  • Hướng dẫn và ví dụ Java Reader
  • Hướng dẫn và ví dụ Java Writer
  • Hướng dẫn và ví dụ Java FileReader
  • Hướng dẫn và ví dụ Java FileWriter
  • Hướng dẫn và ví dụ Java CharArrayReader
  • Hướng dẫn và ví dụ Java ByteArrayInputStream
  • Hướng dẫn và ví dụ Java DataInputStream
  • Hướng dẫn và ví dụ Java ObjectInputStream
  • Hướng dẫn và ví dụ Java InputStreamReader
  • Hướng dẫn và ví dụ Java OutputStreamWriter
  • Hướng dẫn và ví dụ Java InputStream
  • Hướng dẫn và ví dụ Java FileInputStream
Show More
  • Hướng dẫn lập trình Java Servlet/JSP
  • Các hướng dẫn Java New IO
  • Các hướng dẫn Spring Cloud
  • Các hướng dẫn Java Oracle ADF
  • Các hướng dẫn Java Collections Framework
  • Java cơ bản
  • Các hướng dẫn Java Date Time
  • Các thư viện mã nguồn mở Java
  • Các hướng dẫn Java Web Services
  • Các hướng dẫn Struts2 Framework
  • Các hướng dẫn Spring Boot

Các bài viết mới nhất

  • Xử lý lỗi 404 trong Flutter GetX
  • Ví dụ đăng nhập và đăng xuất với Flutter Getx
  • Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
  • Hướng dẫn và ví dụ Flutter multi_dropdown
  • Hướng dẫn và ví dụ Flutter flutter_form_builder
  • Hướng dẫn và ví dụ Flutter GetX obs Obx
  • Hướng dẫn và ví dụ Flutter GetX GetBuilder
  • Từ khoá part và part of trong Dart
  • Hướng dẫn và ví dụ Flutter InkWell
  • Bài thực hành Flutter SharedPreferences
  • Hướng dẫn và ví dụ Flutter Radio
  • Hướng dẫn và ví dụ Flutter Slider
  • Hướng dẫn và ví dụ Flutter SkeletonLoader
  • Chỉ định cổng cố định cho Flutter Web trên Android Studio
  • Hướng dẫn và ví dụ Flutter SharedPreferences
  • Tạo Module trong Flutter
  • Flutter upload ảnh sử dụng http và ImagePicker
  • Bài thực hành Dart http CRUD
  • Hướng dẫn và ví dụ Flutter image_picker
  • Flutter GridView với SliverGridDelegate tuỳ biến
Show More
  • Các hướng dẫn Java IO

Từ khóa » đọc File Trong Java Dụng Bufferedreader