標籤:視頻 輸入資料流 print null java io class redo input 標準
最近,在學習Java,並且學習到了Java的IO(輸入與輸入),什麼是Java IO呢?
IO流位於java.io包中,根據操作資料不同,分為位元組流和字元流;根據資料輸入方面的不同又可分為輸入資料流和輸出資料流,無論是何種流,最終都依賴於作業系統。
一、位元組流:
1、位元組流,主要用於圖片、音頻、視頻的傳輸,以二進位的形式進行,分為位元組輸入資料流和位元組輸出資料流;位元組流操作的是位元組數組;字元流操作的是字元數組。
2、位元組輸入與位元組輸出資料流的繼承體系圖
InputStream 常用方法
方法聲明
功能描述
int read()
從輸入資料流讀取一個8位的位元組,把它轉換為0-255之間的整數,並返回這一整數
int read(byte[] b)
從輸入資料流讀取若干位元組,把它們儲存到參數b指定的位元組數組中,返回的整數表示讀取的位元組數
int read(byte[] b,int off,len)
從輸入資料流讀取若干位元組,把它們儲存到參數b指定的位元組數組中,off指定位元組數組開始儲存資料的起始下標,len表示讀取的位元組
void close()
關閉此輸入資料流並釋放與該流關聯的所有系統資源
OutputStream 常用方法
方法聲明
功能描述
void write(int b)
向輸出資料流寫入一個位元組
void write(byte[] b)
把參數b指定的位元組數組的所有位元組寫到輸出資料流
void write(byte[] b,int off,len)
將指定byte數組中從位移量off開始的len個位元組寫入輸出資料流
void flush()
重新整理此輸出資料流並強制寫出所有緩衝的輸出位元組
void close()
關閉此輸出資料流並釋放與該流關聯的所有系統資源
位元組流讀寫檔案:
FileInputStream 是操作檔案的的位元組輸入資料流,專門用於讀取檔案中的資料。
FileOutputStream是操作檔案的的位元組輸出資料流,專門用於把資料寫入檔案。
其代碼如下:
package Redirecting;import java.io.*;public class Redirecting { public static void main(String[] args) throws IOException { PrintStream console = System.out; BufferedInputStream in = new BufferedInputStream(new FileInputStream("/Users/mac/IdeaProjects/JF_Java_EDU/src/Redirecting/Redirecting.java")); PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("outtest.txt"))); System.setIn(in); System.setOut(out); System.setErr(out); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s; while ((s = br.readLine()) != null) System.out.println(s); out.println(s); out.close(); System.setOut(console); }}
FileReader 和FileWriter 用於讀寫檔案;BufferedReader 和BufferdeWriter是具有緩衝功能的流,可以提高讀寫效率。
BufferedReader中有一重要的方法readLind(),該方法用於一次讀取一行文本。
轉換流是一種字元流,只能實現位元組流讀寫文本資料的時候,通過轉換流來使用字元高效流的方法。而不能實現圖片、音頻等資料的讀寫。
InputStreamReader:理解上是位元組流通向字元流的橋樑,使用上為:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
OutputStreamWriter:理解上是字元流通向位元組流的橋樑,使用上還是通過位元組流轉成字元流:
BufferedWriter bw = new BufferedWriter (new OutputStreamWriter(System.out));
最終的輸出結果,把你的代碼輸出到文字文件,如下:
Java 示範如何用標準的輸入輸出資料流重新導向到一個檔案