一、類圖

基本上IO可以分為位元組流和字符流
二、字符大小
一般來說一個字母占用一個位元組,一個漢字占用兩個位元組,具體還要看字符編碼,比如說在 UTF-8 編碼下,一個英文字母(不分大小寫)為一個位元組,一個中文漢字為三個位元組;在 Unicode 編碼中,一個英文字母為一個位元組,一個中文漢字為兩個位元組,
三、常用方法
InputStream
int read() 讀取資料 int read(byte[] b, int off, int length) 從第off個位元組開始讀取長度為length的位元組,放到陣列b中 long skip(long n) 跳過指定長度的位元組 int available() 回傳可讀取的位元組長度 void close() 關閉位元組流
OutputStream
void write(int b) 寫入一個位元組,雖然傳入的是int型別,但是只會傳入低八位,前24位舍棄 void write(byte[] b, int off, int length) 在陣列b中,從第off個位元組開始,讀取長度為length的位元組 void fluhsh() 強制重繪,將緩沖區資料寫入 void close() 關閉位元組流
Reader
int read() 讀取資料 int read(char[] b, int off, int length) 從第off個字符開始讀取長度為length的字符,放到陣列b中 long skip(long n) 跳過指定長度的字符 int ready() 是否可以讀了 void close() 關閉位元組流
Writer
void write(char b) 寫入一個字符 void write(byte[] b, int off, int length) 在陣列b中,從第off個位元組開始,讀取長度為length的位元組 void fluhsh() 強制重繪,將緩沖區資料寫入 void close() 關閉位元組流
四、按照IO流操作的物件來進行分類

五、分別舉例
先舉個FileInputStream的列子
package com.newJava;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class D154_InputOutputStream {
public static void main(String[] args) {
InputStream is = null;
String address = "E:\\d05_gitcode\\Java\\newJava\\src\\com\\newJava\\newFile.txt";
int b;
try {
is = new FileInputStream(address);
while ((b = is.read()) != -1) { // 可以看出是一個位元組一個位元組讀取的
System.out.println((char)b);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

原文 
六、原始碼:
github路徑:https://github.com/ruigege66/Java/blob/master/newJava/src/com/newJava CSDN:https://blog.csdn.net/weixin_44630050 博客園:https://www.cnblogs.com/ruigege0000/ 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流 
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/388914.html
標籤:Java
上一篇:PDF轉圖片,拼接圖片
