1. Trang chủ
  2. » Thể loại khác

File và I O trong Java - 155 bài học Java miễn phí hay nhất java files io

12 114 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • File và I/O trong Java

    • Byte Stream trong Java

    • Character Stream trong Java

    • Standard Stream trong Java

    • Đọc và Ghi File trong Java

    • FileInputStream trong Java:

    • FileOutputStream trong Java

    • Ví dụ:

    • Điều hướng file và I/O trong Java

    • Thư mục trong Java

    • Tạo thư mục trong Java

    • Liệt kê thư mục trong Java

Nội dung

http://vietjack.com/java/index.jsp Copyright © vietjack.com File I/O Java Gói java.io chứa gần tất lớp bạn cần để thực input output (I/O) Java Tất stream biểu diễn nguồn input output đích đến Stream java.io package hỗ trợ nhiều liệu kiểu gốc, Object, ký tự nội bộ, … Một stream định nghĩa dãy liên tục liệu InputStream sử dụng để đọc liệu từ nguồn OutputStream sử dụng để ghi liệu tới đích đến Java cung cấp hỗ trợ mạnh mẽ linh hoạt cho I/O liên quan tới File mạng phần hướng dẫn này, chúng tơi bàn luận tính liên quan tới stream I/O Chúng ta xem xét ví dụ sử dụng phổ biến Để hiểu sâu khái niệm trình bày chương này, mời bạn tham khảo loạt bài: Ví dụ File Java Byte Stream Java Byte Stream Java sử dụng để thực input output byte (8 bit) Mặc dù có nhiều lớp liên quan tới byte stream lớp thường sử dụng là:FileInputStream FileOutputStream Sau ví dụ sử dụng hai lớp để chép input file vào output file: import java.io.*; public class CopyFile { public static void main(String args[]) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("input.txt"); out = new FileOutputStream("output.txt"); int c; while ((c = in.read()) != -1) { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com out.write(c); } }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } } Bây giả sử có file input.txt có nội dung sau: This is test for copy file Trong bước tiếp theo, biên dịch chương trình thực thi nó, cho kết tạo file output.txt có nội dung có input.txt Vì thế, bạn đặt code vào CopyFile.java file làm sau: $javac CopyFile.java $java CopyFile Character Stream Java Byte Stream Java sử dụng để thực input output byte (8 bit), đó, Character Stream Java sử dụng để thực input output cho Unicode 16 bit Mặc dù có nhiều lớp liên quan tới character stream lớp thường dùng FileReader FileWriter… Mặc dù nội tại, FileReader sử dụng FileInputStream FileWriter sử dụng FileOutputStream, có điểm khác biệt lớn FileReader đọc hai byte thời điểm FileWriter ghi byte lúc Chúng ta viết lại ví dụ mà sử dụng hai lớp để chép input file (có ký tự Unicode) vào output file import java.io.*; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com public class CopyFile { public static void main(String args[]) throws IOException { FileReader in = null; FileWriter out = null; try { in = new FileReader("input.txt"); out = new FileWriter("output.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } } Giả sử có input.txt có nội dung sau: This is test for copy file Trong bước tiếp theo, biên dịch chương trình thực thi nó, cho kết tạo file output.txt có nội dung có input.txt Vì thế, bạn đặt code vào CopyFile.java file làm sau: $javac CopyFile.java $java CopyFile http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Standard Stream Java Tất Ngơn ngữ lập trình cung cấp hỗ trợ cho I/O chuẩn, chương trình người sử dụng nhận đầu vào từ bàn phím sau tạo kết hình máy tính Nếu bạn biết ngơn ngữ C/C++, bạn phải biết thiết bị chuẩn STDIN, STDOUT, STDERR Theo cách tương tự, Java cung cấp Standard Stream sau:  Đầu vào chuẩn (Standard Input): Nó sử dụng để truyền liệu tới chương trình người dùng thường bàn phím sử dụng đầu vào chuẩn biểu diễn System.in  Đầu chuẩn (Standard Output): Nó sử dụng để hiển thị kết đầu từ chương trình người dùng thường hình máy tính sử dụng đầu chuẩn biểu diễn System.out  Lỗi chuẩn (Standard Error): Được sử dụng để hiển thị lỗi chương trình người dùng thường hình máy tính sử dụng lỗi chuẩn biểu diễn System.err Sau chương trình đơn giản tạo InputStreamReader để đọc luồng đầu vào chuẩn tới người sử dụng gõ “q” import java.io.*; public class ReadConsole { public static void main(String args[]) throws IOException { InputStreamReader cin = null; try { cin = new InputStreamReader(System.in); System.out.println("Enter characters, 'q' to quit."); char c; { c = (char) cin.read(); System.out.print(c); } while(c != 'q'); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com }finally { if (cin != null) { cin.close(); } } } } Giữ code ReadConsole.java file thực thi biên dịch Chương trình tiếp tục đọc hiển thị kết tới nhấn phím “q” $javac ReadConsole.java $java ReadConsole Enter characters, 'q' to quit 1 e e q q Đọc Ghi File Java Như miêu tả trước đó, Stream định nghĩa dãy liên tục liệu InputStream sử dụng để đọc liệu từ nguồn OutputStream sử dụng để ghi liệu tới đích Dưới cấu trúc có thứ tự lớp để xử lý luồng Input Output http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Hai luồng quan trọng FileInputStream FileOutputStream, bàn luận sau đây: FileInputStream Java: Luồng sử dụng để đọc liệu từ file Các đối tượng tạo sử dụng từ khóa new có số kiểu constructor có sẵn Constructor sau nhận tên file chuỗi để tạo đối tượng Input Stream để đọc file: InputStream f = new FileInputStream("C:/java/hello"); Constructor sau nhận đối tượng File để tạo đối tượng Input Stream để đọc file Đầu tiên tạo đối tượng file sử dụng phương thức File() sau: File f = new File("C:/java/hello"); InputStream f = new FileInputStream(f); Khi có đối tượng InputStream, có danh sách phương thức sử dụng để đọc stream để thực hoạt động khác stream STT Phương thức Miêu tả public void close() throws IOException{} Phương thức đóng output stream Giải phóng nguồn hệ thống liên kết với file Ném IOException http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com protected void finalize()throws IOException {} Phương thức xóa kết nối tới File Bảo đảm phương thức close output stream gọi khơng có tham chiếu tới stream Ném IOException public int read(int r)throws IOException{} Phương thức đọc byte liệu xác định từ InputStream Trả int Trả byte liệu -1 trả kết thúc file public int read(byte[] r) throws IOException{} Phương thức đọc r byte từ input stream vào mảng Trả tổng số byte đọc Nếu kết thúc file, -1 trả public int available() throws IOException{} Cung cấp số byte mà đọc từ input stream Trả int Có số input stream quan trọng khác có sẵn, để biết thêm chi tiết, bạn tham khảo theo link sau:  ByteArrayInputStream  DataInputStream FileOutputStream Java FileOutputStream sử dụng để tạo file ghi liệu vào Luồng tạo file, khơng tồn tại, trước mở để ghi output Dưới hai constructor mà sử dụng để tạo đối tượng FileOutputStream Java Constructor sau nhận tên file chuỗi để tạo đối tượng input stream để ghi file OutputStream f = new FileOutputStream("C:/java/hello") Constructor sau nhận đối tượng file để tạo đối tượng output stream để ghi file http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f); Khi bạn có đối tượng OutputStream này, sau có phương thức sử dụng để ghi stream để thực hoạt động khác stream này: STT Phương thức Miêu tả public void close() throws IOException{} Phương thức đóng output stream Giải phóng nguồn hệ thống liên kết với file Ném IOException protected void finalize()throws IOException {} Phương thức xóa kết nối tới File Bảo đảm phương thức close output stream gọi khơng có tham chiếu tới stream Ném IOException public void write(int w)throws IOException{} Phương thức ghi byte xác định tới output stream public void write(byte[] w) Ghi w byte từ mảng byte đề cập tới OutputStream Ngồi có số output stream quan trọng khác, bạn tham khảo theo link sau:  ByteArrayOutputStream  DataOutputStream Ví dụ: Ví dụ sau minh họa InputStream OutputStream: import java.io.*; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com public class fileStreamTest{ public static void main(String args[]){ try{ byte bWrite [] = {11,21,3,40,5}; OutputStream os = new FileOutputStream("test.txt"); for(int x=0; x < bWrite.length ; x++){ os.write( bWrite[x] ); // writes the bytes } os.close(); InputStream is = new FileInputStream("test.txt"); int size = is.available(); for(int i=0; i< size; i++){ System.out.print((char)is.read() + " "); } is.close(); }catch(IOException e){ System.out.print("Exception"); } } } Code tạo test.txt file ghi số cho định dạng nhị phân Kết tương tự hình stdout Điều hướng file I/O Java Có số lớp khác cần tìm hiểu để biết khái niệm Điều hướng file I/O  Lớp File Java  Lớp FileReader Java http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp  Copyright © vietjack.com Lớp FileWriter Java Thư mục Java Một thư mục File mà giữ danh sách file thư mục khác Bạn sử dụng đối tượng File để tạo thư mục, để liệt kê file có sẵn thư mục Để hiểu chi tiết, bạn kiểm tra phương thức mà bạn gọi đối tượng File liên quan tới thư mục Để hiểu sâu khái niệm trình bày chương này, mời bạn tham khảo loạt bài: Ví dụ Thư mục Java Tạo thư mục Java Có hai phương thức tiện ích File hữu ích, mà sử dụng để tạo thư mục:  Phương thức mkdir() tạo thư mục, trả true thành công false thất bại Việc thất bại đường truyền xác định đối tượng File tồn tại, thư mục khơng thể tạo đường truyền khơng tồn  Phương thức mkdirs() tạo thư mục tất thư mục cha Ví dụ sau tạo thư mục /tmp/user/java/bin import java.io.File; public class CreateDir { public static void main(String args[]) { String dirname = "/tmp/user/java/bin"; File d = new File(dirname); // Create directory now d.mkdirs(); } } Biên dịch thực thi code tạo thư mục /tmp/user/java/bin Ghi chú: Java tự động chăm sóc tách đường truyền UNIX Windows theo qui ước tương ứng hệ thống Nếu bạn sử dụng dấu gạch chéo (/) phiên Windows Java, đường truyền giải cách xác http://vietjack.com/ Trang chia sẻ học online miễn phí Page 10 http://vietjack.com/java/index.jsp Copyright © vietjack.com Liệt kê thư mục Java Bạn sử dụng phương thức list() cung cấp đối tượng File để liệt kê tất file thư mục có sẵn thư mục sau: import java.io.File; public class ReadDir { public static void main(String[] args) { File file = null; String[] paths; try{ // create new file object file = new File("/tmp"); // array of files and directory paths = file.list(); // for each name in the path array for(String path:paths) { // prints filename and directory name System.out.println(path); } }catch(Exception e){ // if any error occurs e.printStackTrace(); } } } Nó cho kết sau dựa thư mục file có sẵn thư mục /tmp bạn: http://vietjack.com/ Trang chia sẻ học online miễn phí Page 11 http://vietjack.com/java/index.jsp Copyright © vietjack.com test1.txt test2.txt ReadDir.java ReadDir.class http://vietjack.com/ Trang chia sẻ học online miễn phí Page 12 ... thức Miêu tả public void close() throws IOException{} Phương thức đóng output stream Gi i phóng nguồn hệ thống liên kết v i file Ném IOException protected void finalize()throws IOException {}... chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com public class CopyFile { public static void main(String args[]) throws IOException { FileReader in = null;... vietjack.com protected void finalize()throws IOException {} Phương thức xóa kết n i t i File B o đảm phương thức close output stream g i khơng có tham chiếu t i stream Ném IOException public int read(int

Ngày đăng: 03/12/2017, 00:50

TỪ KHÓA LIÊN QUAN

w