SlideShare a Scribd company logo
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HCM 
KHOA CÔNG NGHỆ THÔNG TIN 
INPUT – OUTPUT 
TRONG JAVA 
GVHD: Th.S Trương Thị Ngọc Phượng 
Nhóm 1: 
1.Lê Đức Cảnh – 10910018 
2.Bùi Tuấn Anh – 10910032 
3.Hoàng Thanh Bình – 10910034 
4.Trịnh Xuân Bình - 11110013
Phân công việc 
STT Họ và tên MSSV Công việc 
1 Bùi Tuấn Anh 10910032 Text File 
2 Hoàng Thanh Bình 10910034 Text File 
3 Lê Đức Cảnh 10910018 Binary File 
4 Trịnh Xuân Bình 11110013 Binary File
Nội dung 
I- Giới thiệu. 
II- Stream. 
1. Các loại Stream trong Java 
2. Phân cấp các lớp nhập/xuất theo byte vật lý 
3. Phân cấp các lớp nhập/xuất theo byte ký tự 
4. Phân cấp các lớp nhập/xuất theo File 
III. Tập tin văn bản và tập tin nhị phân 
1. Tập tin văn bản(Text File) 
2. Tập tin nhị phân(Binary File) 
IV- Tóm tắt
I. Giới thiệu 
Nhập dữ liệu(Input) là tác vụ đưa các dữ liệu cụ 
thể vào cho biến trong chương trình. Như vậy, 
phải có một nguồn chứa dữ liệu (bàn phím, tập 
tin, biến khác). 
Xuất dữ liệu là tác vụ đưa trị cụ thể của biến 
trong chương trình ra một nơi chứa (màn hình 
hay file hay biến khác). 
Nhập/xuất dữ liệu là các phương tiện mà 
chương trình tương tác với user và thường 
không thể thiếu trong đa số các ứng dụng.
II- Stream 
Stream là một đối tượng cho phép dòng chảy 
dữ liệu giữa chương trình của mình và một số 
thiết bị nhập xuất hoặc một số tập tin. 
Dòng dữ liệu đi vào chương trình được gọi là 
luồng nhập (input stream). 
Dòng dữ liệu từ chương trình ra ngoài gọi 
luồng xuất (output stream).
1. Các loại stream trong Java
2. Phân cấp các lớp nhập theo byte vật lý
2. Phân cấp các lớp xuất theo byte vật lý
3. Phân cấp các lớp nhập theo ký tự 
3. Phân cấp các lớp xuất theo ký tự
4. Phân cấp các lớp thao tác file 
với hệ điều hành 
Lớp File giúp truy xuất các thuộc tính của 1 
file/thư mục. 
Lớp FileDescriptor: Giúp đồng bộ việc truy xuất 
file. 
Lớp RandomAccessFile giúp đọc/ghi file với dữ 
liệu thuộc kiểu cơ bản
III. Tập tin văn bản và tập tin nhị phân 
(Text files and binary files) 
Tập tin văn bản là các tập tin có chứa chuỗi ký 
tự khi xem trong một trình soạn thảo văn bản 
hoặc đọc bởi một chương trình. 
Tập tin văn bản đôi khi còn được gọi là tập tin 
ASCII vì chúng chứa dữ liệu được mã hóa bằng 
cách sử dụng mã ASCII. 
Các tập tin có nội dung phải được xử lý như 
chuỗi các số nhị phân được gọi là tập tin nhị 
phân.
1.Tập tin văn bản (Text files) 
Ghi vào tập tin văn bản 
Phụ thêm vào tập tin văn bản 
Đọc tập tin văn bản 
Sử dụng Scanner 
Sử dụng BufferedReader 
Tên đường dẫn 
Lời gọi hàm lồng nhau 
System.in, System.out và System.err
1.1. Ghi vào tập tin văn bản 
Mở tập tin văn bản để viết ra 
Cú pháp: 
PrintWriter Output_Stream_Name; 
Output_Stream_Name = 
newPrintWriter(newFileOutputStream(File_Name)); 
Đặt tên tập tin 
Tên file theo OS 
Một tập tin có 2 tên 
IOException 
Đóng tập tin: cú pháp Stream_Object.close();
1.2. Phụ thêm vào tập tin văn bản 
Output_Stream_Name= 
new PrintWriter( 
new FileOutputStream(File_Name, true or 
false));
1.3. Đọc tập tin văn bản sử dụng Scanner 
Cú pháp 
Scanner Stream_Object= 
new Scanner(new FileInputStream(File_Name)); 
Demo
1.4. Lớp BufferedReader và BufferedWriter 
Dòng nhập/xuất ký tự có sử dụng bộ đệm 
Giúp nhập xuất dữ liệu theo dạng ký tự, dòng 
(line) ký tự. 
Method BufferedReader
Minh họa 
Demo
1.5. Lớp File 
Làm việc trực tiếp với các tập tin: 
 Tạo, xóa, đổi tên tập tin 
 Lấy thông tin đường dẫn 
Kiểm tra sự tồn tại của một tập tin/ thư mục.
Method File
Minh họa truy xuất thuộc tính File 
Demo
Minh họa truy xuất thư mục File 
Demo
1.6. Gói java.lang và lớp System 
Gói java.lang là gói cơ bản của ngôn ngữ Java 
(language). 
Gói này chứa khai báo các lớp wrapper như 
Boolean, Char, Integer,... 
Có lớp System mô tả cho hệ thống
Gói java.lang 
subclasses:
public final class System extends Object 
Data 
static PrintStream err :mô tả thiết bị xuất lỗi 
chuẩn (màn hình) 
static PrintStream out :mô tả thiết bị xuất chuẩn 
(màn hình) 
static PrintStream in :mô tả thiết bị nhập chuẩn 
(bàn phím) 
Methods 
Các hành vi của lớp System là các hành vi mức 
hệ thống như truy xuất thời gian, truy xuất các 
thiết lập hệ thống (trong Config.sys), thoát JVM, 
nạp 1 lớp trong 1 file, nạp 1 thư viện, kết thúc 1 
object, thiết lập thiết bị nhập xuất hệ thống khác 
với các thiết bị xuất nhập chuẩn, lấy/thiết lập cơ 
chế bảo mật…
public final class System extends Object .... 
Các method thường dùng: 
static long currentTimeMillis() lấy giờ hệ thống 
theo millisec so với 12 giờ đêm ngày 1/1/1970 
static long nanoTime() lấy giờ hệ thống theo 
nanosec (chỉ có từ Java 1.5.0) 
static void exit(int status) kết thúc JVM 
static void gc(void) : gọi trình gom rác (garbage 
collector) 
static Properties getProperties(void) lấy thiết lập 
hệ thống (trong Config.sys)
Thí dụ về truy xuất thông tin hệ thống 
Demo
2. Tập tin nhị phân (Binary File) 
- Binary Files là một tập tin máy tính mà có thể chứa 
bất kỳ loại dữ liệu, mã hóa dưới dạng nhị phân để 
lưu trữ máy tính và mục đích chế biến nhằm mục 
đích xử lý để cho các chương trình đọc. 
- Các luồng dành cho xử lý binary file là 
ObjectInputStream và ObjectOutputStream. Các 
luồng này có thể tự động chuyển số và kí tự thành 
byte và chứa trong binary file.
2.1. Viết dữ liệu đơn giản với Binary file 
DataInputStream và DataOutputStream 
DataInput interface được dùng 
để đọc các byte nhị phân từ 1 
dòng byte vật lý (InputStream) và 
xây dựng lại các byte này thành 
các dữ liệu có kiểu cơ bản 
(primitive data types). Inteface 
này cũng chuyển đổi chuỗi dạng 
UTF-8 có sửa đổi thành dữ liệu 
dạng String . 
DataOutput interface lại làm 
ngược lại những gì mà 
DataInput interface đã làm.
ObjectInputStream và ObjectOutputStream 
Là 2 interface con của 
DataInput và DataOutput 
interfaces cho việc nhập 
xuất đối tượng.
Object Input Stream
Object Output Stream 
Demo
2.2. Unicode & UTF 
- Java sử dụng 2 dạng trình bày của văn bản 
+ Unicode dùng biểu diễn ký tự & chuỗi trong bộ 
nhớ 
+ UTF dùng cho nhập xuất 
- Unicode dùng 16 bit để biểu diễn 1 ký tự. 
- UTF 
+ Viết tắt của “UCS Transformation Format,” 
+ UCS: “Universal Character Set.” 
+ Dạng nén của ký tự Unicode16-bit. 
+ UTF mã hoá các ký tự với số bit đủ để biểu 
diễn ký tự
2.3. Lớp RandomAccessFile 
- Truy xuất ngẫu nhiên, di chuyển (seek) đến 1 vị trí tuỳ ý 
- Đọc hoặc ghi lượng dữ liệu tuỳ ý. 
- Hỗ trợ đọc ghi dữ liệu theo kiểu nguyên thuỷ 
- Mỗi thao tác đọc ghi tự động di chuyển con trỏ đến vị trí 
mới 
- long length() throws IOException: kích thước= bytes. 
- void seek(long position) throws IOException: 
- Di chuyển tương đối so với đầu file
- RandomAccessFile không dẫn xuất từ 
InputStream hay OutputStream mà nó hiện thực các 
interface DataInput, DataOutput (có định nghĩa các 
phương thức I/O cơ bản). 
- RandomAccessFile hỗ trợ vấn đề định vị con trỏ 
file bên trong một file dùng phương thức seek(long 
newPos).
Lớp RandomAccessFile... 
Constructors 
RandomAccessFile(File f, String mode) 
RandomAccessFile(String Filename, String mode) 
mode Ý nghĩa 
"r" Mở file chỉ để đọc , có thể gây lỗi IOException. 
"rw" Mở file đổ đọc + ghi. Nếu file chưa có thì sẽ tạo mới file này. 
"rws" Mở file để đọc + ghi. Nếu có hiệu chỉnh nội dung hay dữ liệu 
mô tả file (metadata) thì đòi hỏi phải được ghi đồng bộ. 
"rwd" Mở file để đọc + ghi và mỗi khi có hiệu chỉnh nội dung file thì 
phải được đồng bộ.
Lớp RandomAccessFile... 
RandomAccessFile Method Summary 
void close() – Đóng file. 
FileChannel getChannel() Lấy đối tượng FileChannel kết hợp với . 
FileDescriptor getFD() Lấy FileDescriptor. 
long getFilePointer() - Lấy vị trí truy xuất hiện hành. 
long length() - Lấy đ9ộ dài file. 
int 
read() Đọc 1 byte. 
void 
write(int b) ghi 1 byte vào vị trí hiện hành 
int 
void 
read(byte[] b) Đọc 1 mảng byte- trả về số byte đọc được. 
write(byte[] b) ghi mảng b 
int 
void 
read(byte[] b, int off, int len) 
write(byte[] b, int off, int len) Đọc/ghi len byte đưa vào mảng b từ vị trí off, trả về số byte đọc được. 
boolean 
void 
readBoolean() Đọc/ghi 1 trị boolean. 
writeBoolean (boolean v) 
byte 
void 
readByte() Đọc.ghi 1 trị 8 bit có dấu. 
writeByte ( int x) 
char 
void 
readChar() - Đọc 1 ký tự Unicode . 
writeChar( int v) ghi 1 ký tự 2 byte, byte cao ghi trước 
double 
void 
readDouble() Đọc/ ghi 1 trị double. 
writeDouble ( double x) – ghi dạng longbits 8 bytes
Lớp RandomAccessFile... 
float 
void 
readFloat() Đọc/ ghi 1 trị float. 
writeFloat( float x) ghi dạng intbit 4 bytes 
void readFully(byte[] b) Đọc ra cả 1 mảng byte từ vị trí hiện hành. 
void readFully(byte[] b, int off, int len) Đọc len byte từ vị trí hiện hành đưa vào vị trí off của mảng b. 
int 
void 
readInt() Đọc 1 số integercó dấu 32 bit . 
writeInt(int x) 
String readLine() Đọc 1 dòng kể từ vị trí hiện hành. 
long 
void 
readLong() Đọc 1 số long có dấu (64 bit). 
writeLong(long x) , 8 byte, byte cao ghi trước 
short 
void 
readShort() Đọc 1 số short có dấu (16 bit). 
writeShort(short x) 
int readUnsignedByte() Đọc 1 byte không dấu (8 bit). 
int readUnsignedShort() Đọc 1 số short không dấu (16 bit). 
String 
void 
readUTF() Đọc 1 chuỗi. 
writeUTF(String S) ghi chuỗi dạng mã UTF-8 độc lập máy chủ 
void seek(long pos) Nhẩy đến vị trí pos từ đầu file. 
void setLength(long newLength) ấn định độ dài file. 
int skipBytes(int n) Bỏ qua n bytes. 
void writeBytes(String s) Ghi chuỗi dạng nhóm các bytes. 
void writeChars(String s) Ghi chuỗi dạng nhóm ký tự.
Minh họa lớp RandomAccessFile 
Demo
2.4. Binary I/O của Object 
Các lớp chỉ cần implement interface Serializable. 
class của object phải implements interface 
Serializable để thống nhất cách đọc ghi object của 
hai tác vụ readObject và writeObject. 
Việc đồng bộ cơ chế đọc ghi đối tượng thông 
qua hành vi toString(), tuần tự hóa dữ liệu của đối 
tượng. 
Demo
2.5. The Serializable interface 
- Khai báo implements Serializable để tạo khả 
năng tuần tự hóa cho các đối tượng của lớp 
- Serializablelà 1 interface phân loại, (tag interface) 
+ public interface Serializable { } 
+ Không có phương thức nào 
Ví dụ: public classPerson implements Serializable 
{}
2.6. Mảng Object trong binary file 
Một mảng là một đối tượng và do đó là một tham 
số cho writeObject. Một mảng nguyên có thể được 
lưu vào binary file sử dụng writeObject và đọc sau 
đó sử dụng readObject. Khi làm như vậy, nếu 
mảng có kiểu cơ sở là một lớp thì lớp đó phải là 
Serializable. Điều này có nghĩa là nếu lưu trữ tất 
cả dữ liệu cho một lớp Serializable trong một 
mảng đơn, sau đó có thể xuất tất cả dữ liệu vào 
một binary file với một sự dẫn ra của writeObject. 
Demo
IO trong Java

More Related Content

What's hot

Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchHướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchLevis Nickaster
 
Hacking de4dot for fun - Bài dịch
Hacking de4dot for fun - Bài dịchHacking de4dot for fun - Bài dịch
Hacking de4dot for fun - Bài dịchLevis Nickaster
 
Hướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchHướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchLevis Nickaster
 
đề Cương ôn tập
đề Cương ôn tậpđề Cương ôn tập
đề Cương ôn tậphuynguyenvan19
 
Decrypt các MSIL methods một cách thử công - Bài dịch
Decrypt các MSIL methods một cách thử công - Bài dịchDecrypt các MSIL methods một cách thử công - Bài dịch
Decrypt các MSIL methods một cách thử công - Bài dịchLevis Nickaster
 
Họ vi xử lí 8086 intel
Họ vi xử lí 8086 intelHọ vi xử lí 8086 intel
Họ vi xử lí 8086 inteldark_valley
 
7 can ban assembly
7 can ban assembly7 can ban assembly
7 can ban assemblyLy hai
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaViết thuê trọn gói ZALO 0934573149
 

What's hot (12)

Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchHướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
 
Hacking de4dot for fun - Bài dịch
Hacking de4dot for fun - Bài dịchHacking de4dot for fun - Bài dịch
Hacking de4dot for fun - Bài dịch
 
Hướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchHướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịch
 
File trong c_
File trong c_File trong c_
File trong c_
 
Tùy biến Confuser
Tùy biến ConfuserTùy biến Confuser
Tùy biến Confuser
 
đề Cương ôn tập
đề Cương ôn tậpđề Cương ôn tập
đề Cương ôn tập
 
Decrypt các MSIL methods một cách thử công - Bài dịch
Decrypt các MSIL methods một cách thử công - Bài dịchDecrypt các MSIL methods một cách thử công - Bài dịch
Decrypt các MSIL methods một cách thử công - Bài dịch
 
Họ vi xử lí 8086 intel
Họ vi xử lí 8086 intelHọ vi xử lí 8086 intel
Họ vi xử lí 8086 intel
 
7 can ban assembly
7 can ban assembly7 can ban assembly
7 can ban assembly
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
 
Session 21
Session 21Session 21
Session 21
 
File
FileFile
File
 

Viewers also liked

Diễn biến thi truong tien te lien ngan hang
Diễn biến thi truong tien te lien ngan hangDiễn biến thi truong tien te lien ngan hang
Diễn biến thi truong tien te lien ngan hangTuấn Phạm
 
Design patterns in brief
Design patterns in briefDesign patterns in brief
Design patterns in briefDUONG Trong Tan
 
Bai giang th._hoa_sinh_moi_nhat
Bai giang th._hoa_sinh_moi_nhatBai giang th._hoa_sinh_moi_nhat
Bai giang th._hoa_sinh_moi_nhatHường La
 
Tin hoc dai_cuong_9517
Tin hoc dai_cuong_9517Tin hoc dai_cuong_9517
Tin hoc dai_cuong_9517tienhien110293
 
Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)
Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)
Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)Quan Ph
 
[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam
[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam
[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt namThư viện luận văn đại hoc
 
Hdc de thi hsgmtct hoa 2011(phu)
Hdc de thi hsgmtct hoa 2011(phu)Hdc de thi hsgmtct hoa 2011(phu)
Hdc de thi hsgmtct hoa 2011(phu)Lâm Dung
 
Đề cương ôn Sử 11a1 - An Nhơn 3
Đề cương ôn Sử 11a1 - An Nhơn 3Đề cương ôn Sử 11a1 - An Nhơn 3
Đề cương ôn Sử 11a1 - An Nhơn 3Ái Dân
 
Sóng điện từ
Sóng điện từSóng điện từ
Sóng điện từhoangkianh
 
KỸ NĂNG GIAO TIẾP HÀNH CHÍNH Bg giaotiephanhchinh
KỸ NĂNG GIAO TIẾP HÀNH CHÍNH      Bg giaotiephanhchinhKỸ NĂNG GIAO TIẾP HÀNH CHÍNH      Bg giaotiephanhchinh
KỸ NĂNG GIAO TIẾP HÀNH CHÍNH Bg giaotiephanhchinhBùi Quang Xuân
 
Giai phuong trinh bang excell
Giai phuong trinh bang excellGiai phuong trinh bang excell
Giai phuong trinh bang excelltrioby2
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttanhhuycan83
 
Câu hỏi trắc nghiệm đáp án a
Câu hỏi trắc nghiệm   đáp án aCâu hỏi trắc nghiệm   đáp án a
Câu hỏi trắc nghiệm đáp án aTrúc Hương
 
Suy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏng
Suy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏngSuy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏng
Suy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏngTài Tài
 
Những vấn đề cơ bản về tỷ giá
Những vấn đề cơ bản về tỷ giáNhững vấn đề cơ bản về tỷ giá
Những vấn đề cơ bản về tỷ giákhanhehe12
 
Biển đẹp
Biển đẹpBiển đẹp
Biển đẹpruaoirua
 
Thống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống Kê
Thống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống KêThống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống Kê
Thống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống KêMinh Mại
 
Cau hoi on tap lschtkt
Cau hoi on tap lschtktCau hoi on tap lschtkt
Cau hoi on tap lschtktBuinuong993
 

Viewers also liked (20)

Diễn biến thi truong tien te lien ngan hang
Diễn biến thi truong tien te lien ngan hangDiễn biến thi truong tien te lien ngan hang
Diễn biến thi truong tien te lien ngan hang
 
Design patterns in brief
Design patterns in briefDesign patterns in brief
Design patterns in brief
 
May fx500
May fx500May fx500
May fx500
 
Bai giang th._hoa_sinh_moi_nhat
Bai giang th._hoa_sinh_moi_nhatBai giang th._hoa_sinh_moi_nhat
Bai giang th._hoa_sinh_moi_nhat
 
Tin hoc dai_cuong_9517
Tin hoc dai_cuong_9517Tin hoc dai_cuong_9517
Tin hoc dai_cuong_9517
 
Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)
Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)
Giaohangtietkiem.vn - Giải pháp giao hàng TMĐT (eCom Services JSC)
 
[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam
[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam
[Luanvandaihoc.com]xây dựng kinh tế thị trường định hướng xhcn ở việt nam
 
Hdc de thi hsgmtct hoa 2011(phu)
Hdc de thi hsgmtct hoa 2011(phu)Hdc de thi hsgmtct hoa 2011(phu)
Hdc de thi hsgmtct hoa 2011(phu)
 
Đề cương ôn Sử 11a1 - An Nhơn 3
Đề cương ôn Sử 11a1 - An Nhơn 3Đề cương ôn Sử 11a1 - An Nhơn 3
Đề cương ôn Sử 11a1 - An Nhơn 3
 
Sóng điện từ
Sóng điện từSóng điện từ
Sóng điện từ
 
KỸ NĂNG GIAO TIẾP HÀNH CHÍNH Bg giaotiephanhchinh
KỸ NĂNG GIAO TIẾP HÀNH CHÍNH      Bg giaotiephanhchinhKỸ NĂNG GIAO TIẾP HÀNH CHÍNH      Bg giaotiephanhchinh
KỸ NĂNG GIAO TIẾP HÀNH CHÍNH Bg giaotiephanhchinh
 
Giai phuong trinh bang excell
Giai phuong trinh bang excellGiai phuong trinh bang excell
Giai phuong trinh bang excell
 
plc 300
plc 300plc 300
plc 300
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcntt
 
Câu hỏi trắc nghiệm đáp án a
Câu hỏi trắc nghiệm   đáp án aCâu hỏi trắc nghiệm   đáp án a
Câu hỏi trắc nghiệm đáp án a
 
Suy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏng
Suy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏngSuy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏng
Suy diễn thống kê và ngôn ngữ R (1): Tính toán xác suất và mô phỏng
 
Những vấn đề cơ bản về tỷ giá
Những vấn đề cơ bản về tỷ giáNhững vấn đề cơ bản về tỷ giá
Những vấn đề cơ bản về tỷ giá
 
Biển đẹp
Biển đẹpBiển đẹp
Biển đẹp
 
Thống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống Kê
Thống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống KêThống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống Kê
Thống kê tình hình mua vàng-Báo cáo môn Nguyên Lý Thống Kê
 
Cau hoi on tap lschtkt
Cau hoi on tap lschtktCau hoi on tap lschtkt
Cau hoi on tap lschtkt
 

Similar to IO trong Java

Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và outputTráng Hà Viết
 
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTMasterCode.vn
 
Core java 9
Core java 9Core java 9
Core java 9. .
 
Phan 2 chuong 10 (tap tin)
Phan 2   chuong 10 (tap tin)Phan 2   chuong 10 (tap tin)
Phan 2 chuong 10 (tap tin)Trần Văn Nam
 
6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdfSonNguyen642431
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 
209 008 ky thuat truy xuat file ini
209 008 ky thuat truy xuat file ini209 008 ky thuat truy xuat file ini
209 008 ky thuat truy xuat file initraducanh
 
Python moi
Python moiPython moi
Python moiDÉp LÊ
 
DoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfDoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfTamDo58
 
Bai Thuc hanh Tin học cơ sở nhom Kinh te-update.docx
Bai Thuc hanh Tin học cơ sở nhom Kinh te-update.docxBai Thuc hanh Tin học cơ sở nhom Kinh te-update.docx
Bai Thuc hanh Tin học cơ sở nhom Kinh te-update.docxCuongLe893252
 
Giáo án FOXPRO.doc
Giáo án FOXPRO.docGiáo án FOXPRO.doc
Giáo án FOXPRO.docVanDangthuy
 
tài liệu Mã nguồn mở 03 he-thong-tep-linux-14
tài liệu Mã nguồn mở  03 he-thong-tep-linux-14tài liệu Mã nguồn mở  03 he-thong-tep-linux-14
tài liệu Mã nguồn mở 03 he-thong-tep-linux-14Thuyet Nguyen
 

Similar to IO trong Java (20)

Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và output
 
Bài tập thực hành C#
Bài tập thực hành C#Bài tập thực hành C#
Bài tập thực hành C#
 
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
 
Session 21
Session 21Session 21
Session 21
 
Huong dan thao_tac_file
Huong dan thao_tac_fileHuong dan thao_tac_file
Huong dan thao_tac_file
 
Core java 9
Core java 9Core java 9
Core java 9
 
Phan 2 chuong 10 (tap tin)
Phan 2   chuong 10 (tap tin)Phan 2   chuong 10 (tap tin)
Phan 2 chuong 10 (tap tin)
 
3 he thong-file
3 he thong-file3 he thong-file
3 he thong-file
 
3 he thong-file
3 he thong-file3 he thong-file
3 he thong-file
 
3 he thong-file
3 he thong-file3 he thong-file
3 he thong-file
 
6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
209 008 ky thuat truy xuat file ini
209 008 ky thuat truy xuat file ini209 008 ky thuat truy xuat file ini
209 008 ky thuat truy xuat file ini
 
Python moi
Python moiPython moi
Python moi
 
DoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfDoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdf
 
Bai Thuc hanh Tin học cơ sở nhom Kinh te-update.docx
Bai Thuc hanh Tin học cơ sở nhom Kinh te-update.docxBai Thuc hanh Tin học cơ sở nhom Kinh te-update.docx
Bai Thuc hanh Tin học cơ sở nhom Kinh te-update.docx
 
Giáo án FOXPRO.doc
Giáo án FOXPRO.docGiáo án FOXPRO.doc
Giáo án FOXPRO.doc
 
P2
P2P2
P2
 
tài liệu Mã nguồn mở 03 he-thong-tep-linux-14
tài liệu Mã nguồn mở  03 he-thong-tep-linux-14tài liệu Mã nguồn mở  03 he-thong-tep-linux-14
tài liệu Mã nguồn mở 03 he-thong-tep-linux-14
 

Recently uploaded

Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...lamluanvan.net Viết thuê luận văn
 
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...lamluanvan.net Viết thuê luận văn
 
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe ChàmKhóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàmlamluanvan.net Viết thuê luận văn
 
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000support03
 
BT quy hoạch tuyến tính (có lời giải chi tiết)
BT quy hoạch tuyến tính (có lời giải chi tiết)BT quy hoạch tuyến tính (có lời giải chi tiết)
BT quy hoạch tuyến tính (có lời giải chi tiết)MeoMeo89301
 
Checklist SEO để tối ưu website mà bạn cần biết.pdf
Checklist SEO để tối ưu website mà bạn cần biết.pdfChecklist SEO để tối ưu website mà bạn cần biết.pdf
Checklist SEO để tối ưu website mà bạn cần biết.pdfMr Linh SEO Mentor
 
Tín hiệu xếp hạng trên Google là những gì.pdf
Tín hiệu xếp hạng trên Google là những gì.pdfTín hiệu xếp hạng trên Google là những gì.pdf
Tín hiệu xếp hạng trên Google là những gì.pdfMr Linh SEO Mentor
 
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạnGoogle E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạnMr Linh SEO Mentor
 

Recently uploaded (8)

Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
Khoá luận tốt nghiệp Công nghệ sinh học Nghiên cứu tuyển chọn chủng vi sinh v...
 
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
Khóa luận tốt nghiệp Công nghệ kỹ thuật hóa học Xây dựng phương pháp định lượ...
 
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe ChàmKhóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
Khóa luận tốt nghiệp Công tác Quản trị Văn phòng tại Công ty than Khe Chàm
 
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
BOSCH FBX-1000 Bộ chống hú Bosch FBX-1000
 
BT quy hoạch tuyến tính (có lời giải chi tiết)
BT quy hoạch tuyến tính (có lời giải chi tiết)BT quy hoạch tuyến tính (có lời giải chi tiết)
BT quy hoạch tuyến tính (có lời giải chi tiết)
 
Checklist SEO để tối ưu website mà bạn cần biết.pdf
Checklist SEO để tối ưu website mà bạn cần biết.pdfChecklist SEO để tối ưu website mà bạn cần biết.pdf
Checklist SEO để tối ưu website mà bạn cần biết.pdf
 
Tín hiệu xếp hạng trên Google là những gì.pdf
Tín hiệu xếp hạng trên Google là những gì.pdfTín hiệu xếp hạng trên Google là những gì.pdf
Tín hiệu xếp hạng trên Google là những gì.pdf
 
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạnGoogle E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
Google E-E-A-T là gì? Yếu tố giúp Google đánh giá website của bạn
 

IO trong Java

  • 1. TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN INPUT – OUTPUT TRONG JAVA GVHD: Th.S Trương Thị Ngọc Phượng Nhóm 1: 1.Lê Đức Cảnh – 10910018 2.Bùi Tuấn Anh – 10910032 3.Hoàng Thanh Bình – 10910034 4.Trịnh Xuân Bình - 11110013
  • 2. Phân công việc STT Họ và tên MSSV Công việc 1 Bùi Tuấn Anh 10910032 Text File 2 Hoàng Thanh Bình 10910034 Text File 3 Lê Đức Cảnh 10910018 Binary File 4 Trịnh Xuân Bình 11110013 Binary File
  • 3. Nội dung I- Giới thiệu. II- Stream. 1. Các loại Stream trong Java 2. Phân cấp các lớp nhập/xuất theo byte vật lý 3. Phân cấp các lớp nhập/xuất theo byte ký tự 4. Phân cấp các lớp nhập/xuất theo File III. Tập tin văn bản và tập tin nhị phân 1. Tập tin văn bản(Text File) 2. Tập tin nhị phân(Binary File) IV- Tóm tắt
  • 4. I. Giới thiệu Nhập dữ liệu(Input) là tác vụ đưa các dữ liệu cụ thể vào cho biến trong chương trình. Như vậy, phải có một nguồn chứa dữ liệu (bàn phím, tập tin, biến khác). Xuất dữ liệu là tác vụ đưa trị cụ thể của biến trong chương trình ra một nơi chứa (màn hình hay file hay biến khác). Nhập/xuất dữ liệu là các phương tiện mà chương trình tương tác với user và thường không thể thiếu trong đa số các ứng dụng.
  • 5. II- Stream Stream là một đối tượng cho phép dòng chảy dữ liệu giữa chương trình của mình và một số thiết bị nhập xuất hoặc một số tập tin. Dòng dữ liệu đi vào chương trình được gọi là luồng nhập (input stream). Dòng dữ liệu từ chương trình ra ngoài gọi luồng xuất (output stream).
  • 6. 1. Các loại stream trong Java
  • 7. 2. Phân cấp các lớp nhập theo byte vật lý
  • 8. 2. Phân cấp các lớp xuất theo byte vật lý
  • 9. 3. Phân cấp các lớp nhập theo ký tự 3. Phân cấp các lớp xuất theo ký tự
  • 10. 4. Phân cấp các lớp thao tác file với hệ điều hành Lớp File giúp truy xuất các thuộc tính của 1 file/thư mục. Lớp FileDescriptor: Giúp đồng bộ việc truy xuất file. Lớp RandomAccessFile giúp đọc/ghi file với dữ liệu thuộc kiểu cơ bản
  • 11. III. Tập tin văn bản và tập tin nhị phân (Text files and binary files) Tập tin văn bản là các tập tin có chứa chuỗi ký tự khi xem trong một trình soạn thảo văn bản hoặc đọc bởi một chương trình. Tập tin văn bản đôi khi còn được gọi là tập tin ASCII vì chúng chứa dữ liệu được mã hóa bằng cách sử dụng mã ASCII. Các tập tin có nội dung phải được xử lý như chuỗi các số nhị phân được gọi là tập tin nhị phân.
  • 12. 1.Tập tin văn bản (Text files) Ghi vào tập tin văn bản Phụ thêm vào tập tin văn bản Đọc tập tin văn bản Sử dụng Scanner Sử dụng BufferedReader Tên đường dẫn Lời gọi hàm lồng nhau System.in, System.out và System.err
  • 13. 1.1. Ghi vào tập tin văn bản Mở tập tin văn bản để viết ra Cú pháp: PrintWriter Output_Stream_Name; Output_Stream_Name = newPrintWriter(newFileOutputStream(File_Name)); Đặt tên tập tin Tên file theo OS Một tập tin có 2 tên IOException Đóng tập tin: cú pháp Stream_Object.close();
  • 14. 1.2. Phụ thêm vào tập tin văn bản Output_Stream_Name= new PrintWriter( new FileOutputStream(File_Name, true or false));
  • 15. 1.3. Đọc tập tin văn bản sử dụng Scanner Cú pháp Scanner Stream_Object= new Scanner(new FileInputStream(File_Name)); Demo
  • 16. 1.4. Lớp BufferedReader và BufferedWriter Dòng nhập/xuất ký tự có sử dụng bộ đệm Giúp nhập xuất dữ liệu theo dạng ký tự, dòng (line) ký tự. Method BufferedReader
  • 18. 1.5. Lớp File Làm việc trực tiếp với các tập tin:  Tạo, xóa, đổi tên tập tin  Lấy thông tin đường dẫn Kiểm tra sự tồn tại của một tập tin/ thư mục.
  • 20. Minh họa truy xuất thuộc tính File Demo
  • 21. Minh họa truy xuất thư mục File Demo
  • 22. 1.6. Gói java.lang và lớp System Gói java.lang là gói cơ bản của ngôn ngữ Java (language). Gói này chứa khai báo các lớp wrapper như Boolean, Char, Integer,... Có lớp System mô tả cho hệ thống
  • 24. public final class System extends Object Data static PrintStream err :mô tả thiết bị xuất lỗi chuẩn (màn hình) static PrintStream out :mô tả thiết bị xuất chuẩn (màn hình) static PrintStream in :mô tả thiết bị nhập chuẩn (bàn phím) Methods Các hành vi của lớp System là các hành vi mức hệ thống như truy xuất thời gian, truy xuất các thiết lập hệ thống (trong Config.sys), thoát JVM, nạp 1 lớp trong 1 file, nạp 1 thư viện, kết thúc 1 object, thiết lập thiết bị nhập xuất hệ thống khác với các thiết bị xuất nhập chuẩn, lấy/thiết lập cơ chế bảo mật…
  • 25. public final class System extends Object .... Các method thường dùng: static long currentTimeMillis() lấy giờ hệ thống theo millisec so với 12 giờ đêm ngày 1/1/1970 static long nanoTime() lấy giờ hệ thống theo nanosec (chỉ có từ Java 1.5.0) static void exit(int status) kết thúc JVM static void gc(void) : gọi trình gom rác (garbage collector) static Properties getProperties(void) lấy thiết lập hệ thống (trong Config.sys)
  • 26. Thí dụ về truy xuất thông tin hệ thống Demo
  • 27. 2. Tập tin nhị phân (Binary File) - Binary Files là một tập tin máy tính mà có thể chứa bất kỳ loại dữ liệu, mã hóa dưới dạng nhị phân để lưu trữ máy tính và mục đích chế biến nhằm mục đích xử lý để cho các chương trình đọc. - Các luồng dành cho xử lý binary file là ObjectInputStream và ObjectOutputStream. Các luồng này có thể tự động chuyển số và kí tự thành byte và chứa trong binary file.
  • 28. 2.1. Viết dữ liệu đơn giản với Binary file DataInputStream và DataOutputStream DataInput interface được dùng để đọc các byte nhị phân từ 1 dòng byte vật lý (InputStream) và xây dựng lại các byte này thành các dữ liệu có kiểu cơ bản (primitive data types). Inteface này cũng chuyển đổi chuỗi dạng UTF-8 có sửa đổi thành dữ liệu dạng String . DataOutput interface lại làm ngược lại những gì mà DataInput interface đã làm.
  • 29. ObjectInputStream và ObjectOutputStream Là 2 interface con của DataInput và DataOutput interfaces cho việc nhập xuất đối tượng.
  • 32. 2.2. Unicode & UTF - Java sử dụng 2 dạng trình bày của văn bản + Unicode dùng biểu diễn ký tự & chuỗi trong bộ nhớ + UTF dùng cho nhập xuất - Unicode dùng 16 bit để biểu diễn 1 ký tự. - UTF + Viết tắt của “UCS Transformation Format,” + UCS: “Universal Character Set.” + Dạng nén của ký tự Unicode16-bit. + UTF mã hoá các ký tự với số bit đủ để biểu diễn ký tự
  • 33. 2.3. Lớp RandomAccessFile - Truy xuất ngẫu nhiên, di chuyển (seek) đến 1 vị trí tuỳ ý - Đọc hoặc ghi lượng dữ liệu tuỳ ý. - Hỗ trợ đọc ghi dữ liệu theo kiểu nguyên thuỷ - Mỗi thao tác đọc ghi tự động di chuyển con trỏ đến vị trí mới - long length() throws IOException: kích thước= bytes. - void seek(long position) throws IOException: - Di chuyển tương đối so với đầu file
  • 34. - RandomAccessFile không dẫn xuất từ InputStream hay OutputStream mà nó hiện thực các interface DataInput, DataOutput (có định nghĩa các phương thức I/O cơ bản). - RandomAccessFile hỗ trợ vấn đề định vị con trỏ file bên trong một file dùng phương thức seek(long newPos).
  • 35. Lớp RandomAccessFile... Constructors RandomAccessFile(File f, String mode) RandomAccessFile(String Filename, String mode) mode Ý nghĩa "r" Mở file chỉ để đọc , có thể gây lỗi IOException. "rw" Mở file đổ đọc + ghi. Nếu file chưa có thì sẽ tạo mới file này. "rws" Mở file để đọc + ghi. Nếu có hiệu chỉnh nội dung hay dữ liệu mô tả file (metadata) thì đòi hỏi phải được ghi đồng bộ. "rwd" Mở file để đọc + ghi và mỗi khi có hiệu chỉnh nội dung file thì phải được đồng bộ.
  • 36. Lớp RandomAccessFile... RandomAccessFile Method Summary void close() – Đóng file. FileChannel getChannel() Lấy đối tượng FileChannel kết hợp với . FileDescriptor getFD() Lấy FileDescriptor. long getFilePointer() - Lấy vị trí truy xuất hiện hành. long length() - Lấy đ9ộ dài file. int read() Đọc 1 byte. void write(int b) ghi 1 byte vào vị trí hiện hành int void read(byte[] b) Đọc 1 mảng byte- trả về số byte đọc được. write(byte[] b) ghi mảng b int void read(byte[] b, int off, int len) write(byte[] b, int off, int len) Đọc/ghi len byte đưa vào mảng b từ vị trí off, trả về số byte đọc được. boolean void readBoolean() Đọc/ghi 1 trị boolean. writeBoolean (boolean v) byte void readByte() Đọc.ghi 1 trị 8 bit có dấu. writeByte ( int x) char void readChar() - Đọc 1 ký tự Unicode . writeChar( int v) ghi 1 ký tự 2 byte, byte cao ghi trước double void readDouble() Đọc/ ghi 1 trị double. writeDouble ( double x) – ghi dạng longbits 8 bytes
  • 37. Lớp RandomAccessFile... float void readFloat() Đọc/ ghi 1 trị float. writeFloat( float x) ghi dạng intbit 4 bytes void readFully(byte[] b) Đọc ra cả 1 mảng byte từ vị trí hiện hành. void readFully(byte[] b, int off, int len) Đọc len byte từ vị trí hiện hành đưa vào vị trí off của mảng b. int void readInt() Đọc 1 số integercó dấu 32 bit . writeInt(int x) String readLine() Đọc 1 dòng kể từ vị trí hiện hành. long void readLong() Đọc 1 số long có dấu (64 bit). writeLong(long x) , 8 byte, byte cao ghi trước short void readShort() Đọc 1 số short có dấu (16 bit). writeShort(short x) int readUnsignedByte() Đọc 1 byte không dấu (8 bit). int readUnsignedShort() Đọc 1 số short không dấu (16 bit). String void readUTF() Đọc 1 chuỗi. writeUTF(String S) ghi chuỗi dạng mã UTF-8 độc lập máy chủ void seek(long pos) Nhẩy đến vị trí pos từ đầu file. void setLength(long newLength) ấn định độ dài file. int skipBytes(int n) Bỏ qua n bytes. void writeBytes(String s) Ghi chuỗi dạng nhóm các bytes. void writeChars(String s) Ghi chuỗi dạng nhóm ký tự.
  • 38. Minh họa lớp RandomAccessFile Demo
  • 39. 2.4. Binary I/O của Object Các lớp chỉ cần implement interface Serializable. class của object phải implements interface Serializable để thống nhất cách đọc ghi object của hai tác vụ readObject và writeObject. Việc đồng bộ cơ chế đọc ghi đối tượng thông qua hành vi toString(), tuần tự hóa dữ liệu của đối tượng. Demo
  • 40. 2.5. The Serializable interface - Khai báo implements Serializable để tạo khả năng tuần tự hóa cho các đối tượng của lớp - Serializablelà 1 interface phân loại, (tag interface) + public interface Serializable { } + Không có phương thức nào Ví dụ: public classPerson implements Serializable {}
  • 41. 2.6. Mảng Object trong binary file Một mảng là một đối tượng và do đó là một tham số cho writeObject. Một mảng nguyên có thể được lưu vào binary file sử dụng writeObject và đọc sau đó sử dụng readObject. Khi làm như vậy, nếu mảng có kiểu cơ sở là một lớp thì lớp đó phải là Serializable. Điều này có nghĩa là nếu lưu trữ tất cả dữ liệu cho một lớp Serializable trong một mảng đơn, sau đó có thể xuất tất cả dữ liệu vào một binary file với một sự dẫn ra của writeObject. Demo