Java 示範如何用標準的輸入輸出資料流重新導向到一個檔案

來源:互聯網
上載者:User

標籤:視頻   輸入資料流   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 示範如何用標準的輸入輸出資料流重新導向到一個檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.