Java.關於IO代碼複用

來源:互聯網
上載者:User

重視IO程式碼的複用</p><p>System.in是串連到鍵盤的,是InputStream類型的執行個體對象。System.out串連到顯示器,是PrintStream類的執行個體對象。</p><p>不管各種底層物理裝置用什麼方式實現資料的終止點,InputStream的read方法總是返回-1來表示輸入資料流的結束</p><p>在windows下,按下Ctrl+Z按鍵組合可以產生鍵盤輸入資料流的結束標記,在linux下則是按下Ctrl+D按鍵組合來產生鍵盤輸入資料流的結束標記。</p><p>要編程從鍵盤上連續讀取一大段資料時,應盡量將讀取資料的過程放在函數中完成,使用-1來作為鍵盤輸入的結束點。在改函數中編寫的程式不應直接使用System.in讀取資料,而是用一個InputStream類型的形式參數對象來讀取資料,然後將System.in作為實參傳遞給InputStream類型的形式參數來調用該函數。<br />用基類類型的對象作為形參,然後傳遞子類類型對象來使用,以不變應萬變。提高服用性

 

import java.io.*;<br />class ByteArrayTest {</p><p>public static void main(String[] args) {<br />// TODO: Add your code here<br />/*<br />String tmp="abcdefjklmnopqrst";<br />byte [] src=tmp.getBytes();<br />ByteArrayInputStream input=new ByteArrayInputStream(src);<br />ByteArrayOutputStream output=new ByteArrayOutputStream();//這裡不用傳遞位元組數組,ByteArrayOutputStream會自動建立一個32位元組的緩衝區用來寫入資料"Creates a new byte array output stream."<br />transform(input,output);<br />byte[] result=output.toByteArray(); //public byte[] toByteArray() "Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it."</p><p>System.out.println(new String(result));<br />*/<br />transform(System.in,System.out);<br />}</p><p>public static void transform(InputStream in,OutputStream out){<br />int ch=0;<br />try{<br />while((ch=in.read())!=-1){<br />int upperCh=/*(int)*/Character.toUpperCase((char)ch); //char表示的範圍比int小<br />out.write(upperCh);<br />}<br />}catch(Exception e){<br />e.printStackTrace();<br />}<br />}<br />}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.