Bài giảng Kỹ thuật lập trình Java - Chương 4.1: Nhập xuất

56 20 0
Bài giảng Kỹ thuật lập trình Java - Chương 4.1: Nhập xuất

Đ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

Bài giảng Kỹ thuật lập trình Java - Chương 4.1: Nhập xuất cung cấp cho người đọc các kiến thức: Định dạng nhập/xuất, khái niệm luồng, các luồng byte, các luồng ký tự, file truy cập ngẫu nhiên, luồng nhập/xuất đối tượng,... Mời các bạn cùng tham khảo nội dung chi tiết.

Chương 4.1 Nhập xuất Chương 4.1: Nhập xuất o o o o o o o o Định dạng nhập/xuất Khái niệm luồng Các luồng byte Các luồng ký tự File truy cập ngẫu nhiên Luồng nhập/xuất đối tượng Nhập/xuất với Scanner Nhập/xuất với JOptionPane Định dạng nhập xuất o Sử dụng hàm printf() println() để định dạng kiểu liệu console Mã định dạng Mô tả %d Kết định dạng số nguyên thập phân %f Kết định dạng số thực %o Kết định dạng số Octal (Cơ số 8) %e Kết định dạng số thập phân kiểu số khoa học %n Kết hiển thị dòng Định dạng nhập xuất o Ví dụ: Thực đoạn chương trình sau: public static void main(String[] args){ float i = 8; float j = 3; System.out.println(“Ket qua cua i/j la: “ + i/j); System.out.printf(“Ket qua cua i/j la %.2f”, i/j); } o Kết quả: Luồng (Stream) o Luồng “dòng chảy” liệu gắn với thiết bị vào o Hai loại luồng:  Luồng nhập: Gắn với thiết bị nhập bàn phím, máy scan, file  Luồng xuất: Gắn với thiết bị xuất hình, máy in, file,… Các luồng o Byte streams  Hỗ trợ việc xuất nhập liệu byte, thường dùng đọc ghi liệu nhị phân  InputStream: Luồng nhập byte  OutputStream: Luồng xuất byte o Character streams  Cho ký tự Unicode  Reader: Luồng nhập ký tự  Writer: Luồng xuất ký tự Các luồng o Các lớp luồng nằm gói java.io Lớp trừu tượng java.io.InputStream Lớp trừu tượng java.io.OutputStream Dòng nhập byte vật lý Xử lý byte Dòng xuất byte vật lý Xử lý byte Biến / Đối tượng Dòng nhập ký tự Xử lý theo đơn vị byte Dòng xuất ký tự Xử lý theo đơn vị byte Lớp trừu tượng java.io.Reader Lớp trừu tượng java.io.Writer Luồng byte o input stream: sử dụng để đọc liệu o output stream: sử dụng để ghi liệu Cây thừa kế InputStream Các phương thức InputStream int available( ) Trả số luợng bytes đọc từ luồng nhập void close( ) Đóng luồng nhập giải phóng tài nguyên hệ thống gắn với luồng Không thành công ném lỗi IOException void mark(int numBytes) Đánh dấu vị trí luồng nhập boolean markSupported( ) Kiểm tra xem luồng nhập có hỗ trợ phương thức mark() reset() không int read( ) Đọc byte từ luồng nhập int read(byte buffer[ ]) Đọc buffer.length bytes lưu vào vùng nhớ buffer Kết trả số bytes thật đọc int read(byte buffer[ ], int offset, int numBytes) Đọc numBytes bytes địa offset lưu vào vùng nhớ buffer Kết trả số bytes thật đọc void reset( ) Nhảy trỏ đến vị trí xác định việc gọi hàm mark() lần sau long skip(long numBytes) Nhảy qua numBytes liệu từ luồng nhập Đọc ghi đối tượng tự tạo // file Student.java public class Student implements Serializable { private String name; private int age; Student(String name, int age) { this.name = name; this.age = age; } public String toString() { String ret = "My name is " + name + "\nI am " + age + " years old"; return ret; } } Đọc ghi đối tượng tự tạo // file WriteMyObject.java import java.io.*; public class WriteMyObject{ public static void main(String[] args){ try{ FileOutputStream f = new FileOutputStream("student.dat"); ObjectOutputStream oStream = new ObjectOutputStream(f); Student x = new Student("Bill Gates", 18); oStream.writeObject(x); oStream.close(); } catch (IOException e) { System.out.println(“Error IO file”); } Đọc ghi đối tượng tự tạo try { FileInputStream g = new FileInputStream("student.dat"); ObjectInputStream inStream = new ObjectInputStream(g); Student y = (Student) inStream.readObject(); System.out.println(y.toString()); inStream.close(); }catch (ClassNotFoundException e) { System.out.println(“Class not found”); } catch (IOException e) { System.out.println(“Error IO file”); } } } Đọc ghi đối tượng tự tạo • Đối tượng cài đặt phương thức sau để thực đọc/ghi theo cách riêng – private void writeObject(ObjectOutputStream out) throws IOException – private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException Đọc ghi đối tượng tự tạo Đối tượng cài đặt phương thức sau để thực đọc/ghi theo cách riêng private void writeObject(ObjectOutputStream out) throws IOException private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException Tóm tắt xử lý file Nên dùng DataInputStream DataOutputStream để nhập/xuất liệu kiểu sơ cấp (int, float ) Nên dùng ObjectInputStream nhập/xuất đối tượng ObjectOutputStream Nên kết hợp luồng file luồng đọc/ghi ký tự để nhập xuất file ký tự Unicode Nên dùng RandomAccessFile muốn đọc/ghi tự file Dùng lớp File để lấy thông tin file Nhập liệu sử dụng lớp Scanner o Scanner có nhiều tiến BufferReader o Phân loại liệu mà người dùng nhập vào, đọc kiểu int, float, double,… BufferedReader in1 = new BufferedReader(new InputStreamReader(System.in)); System.out.println(“Nhập vào số nguyên: "); String siNumber = in1.readLine(); //đọc liệu -> chuỗi int iNumber = Integer.parseInt(siNumber); //chuyển sang định dạng số Scanner in1=new Scanner(System.in); System.out.println(“Nhập vào số nguyên: "); age= in1.nextInt(); //nhận trực tiếp kiểu int Một số phương thức lớp Scanner o o o o o nextInt() : trả kiểu int nextFloat() : trả kiểu float nextBoolean() : trả kiểu boolean nextByte() : trả kiểu byte nextLine() : trả kiểu String Nhập liệu sử dụng lớp Scanner import java.util.Scanner; public class GetInputFromKeyboard { public static void main(String[] args) { //Tạo đối tượng Scanner Scanner in1=new Scanner(System.in); String name = ""; int age; System.out.println("Hãy nhập tên: "); name = in1.nextLine(); System.out.println("Hãy nhập tuổi: "); age= in1.nextInt(); System.out.println("Name is " + name +"!"); System.out.println("Age is " + age +"!"); } } Nhập xuất với JOptionPane o JOptionPane lớp kế thừa từ lớp JComponent o Khi biên dịch program lên dialog box cho phép nhập liệu o Một số phương thức:  showConfirmDialog(): Hiển thị câu hỏi lựa chọn giống yes no cancel  showInputDialog(): Hiển thị box nhập  showMessageDialog(): Báo cho người dùng kiện vừa xảy Nhập xuất với JOptionPane import javax.swing.JOptionPane; public class InputFromKeyboardJOptionPane { public static void main(String[] args) { String name = ""; name=JOptionPane.showInputDialog(“Nhập vào tên bạn:"); String msg = "Hello " + name + "!"; JOptionPane.showMessageDialog(null, msg); System.out.println("Name is:"+msg); } } Các thao tác với tập tin thư mục o File (java.io.File): giúp thao tác với tập tin thư mục o Một số hàm lớp như:  isFile kiểm tra tập tin hay không  isDirectory kiểm tra phải thư mục  exists kiểm tra tập tin thư mục có tồn  canRead kiểm tra quyền đọc tập tin thư mục  canWrite kiểm tra có quyền ghi không  setReadable cài đặt quyền đọc cho tập tin thư mục  setWritable cài đặt quyền ghi cho tập tin thư mục  mkdir tạo thư mục đường dẫn  renameTo đổi tên tập tin hay thư mục  delete xóa tập tin thư mục  createNewFile tạo tập tin Các thao tác với tập tin thư mục o Đọc thư mục d:/eclipse in kết đường dẫn file import java.io.File; public class CreateDirectoryExample { public static void main(String[] args) { File file = new File("d:/angiang/longxuyen"); if (!file.exists()) { if (file.mkdir()) { System.out.println("Directoryreated!"); } else { System.out.println("Failedreate directory!"); } } } } Các thao tác với tập tin thư mục import java.io.File; public class CreateDirectory1 { public static void main(String[] args) { File myDocumentFolder = new File("d:/eclipse"); if(myDocumentFolder.exists() && myDocumentFolder.isDirectory() && myDocumentFolder.canRead()) { File[] files = myDocumentFolder.listFiles(); for(File f : files) { System.out.println(f); } } }} Bài tập lớp • Bài 1: Viết chương trình đếm xem file văn cho trước có câu Biết câu kết thúc dấu chấm • Bài 2: Viết chương trình tạo file ghi 100 số Fibonacci Viết chương trình thứ hai để đọc hiển thị liệu từ file .. .Chương 4.1: Nhập xuất o o o o o o o o Định dạng nhập/ xuất Khái niệm luồng Các luồng byte Các luồng ký tự File truy cập ngẫu nhiên Luồng nhập/ xuất đối tượng Nhập/ xuất với Scanner Nhập/ xuất. .. loại luồng:  Luồng nhập: Gắn với thiết bị nhập bàn phím, máy scan, file  Luồng xuất: Gắn với thiết bị xuất hình, máy in, file,… Các luồng o Byte streams  Hỗ trợ việc xuất nhập liệu byte, thường... tượng java. io.InputStream Lớp trừu tượng java. io.OutputStream Dòng nhập byte vật lý Xử lý byte Dòng xuất byte vật lý Xử lý byte Biến / Đối tượng Dòng nhập ký tự Xử lý theo đơn vị byte Dòng xuất

Ngày đăng: 21/05/2021, 13:05

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan