關閉→
當前位置:知科普>IT科技>inputstreamreader - java

inputstreamreader - java

知科普 人氣:2.68W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

inputstreamreader是什麼,讓我們一起了解一下?

InputStreamReader類是從字節流到字符流的橋接器:它使用指定的字符集讀取字節並將它們解碼為字符。 它使用的字符集可以通過名稱指定,也可以明確指定,或者可以接受平台的默認字符集。每次調用一個InputStreamReader的read()方法都可能導致從底層字節輸入流中讀取一個或多個字節。

字節流到字符流的橋樑怎麼理解?

1、計算機存儲的單位是字節,如儘管txt文本中有中文漢字這樣的字符,但是對計算機而言,其是字節形式存在的。

2、字節流讀取是單字節讀取,但是不同字符集解碼成字符需要不通過個數,因此字節流讀取會報錯。

java inputstreamreader

3、 那麼就需要一個流把字節流讀取的字節進行緩衝而後在通過字符集解碼成字符返回,因而形式上看是字符流。

4、InputStreamReader流就是起這個作用,實現從字節流到字符流的轉換。

實戰操作,具體代碼如下:

package 數據流;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net.URL;public class Test_InputStreamReader {    /*     * 得到字符流前需先有字節流     */    private String getStream(String url){        try {            //得到字節流            InputStream in = new URL(url).openStream();            //將字節流轉化成字符流,並指定字符集            InputStreamReader isr = new InputStreamReader(in,"UTF-8");            String results = "";            int tmp;            while((tmp = isr.read()) != -1){                results += (char)tmp;            }            return results;        } catch (MalformedURLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return null;    }    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        String URL = "http://www.baidu.com";        Test_InputStreamReader test = new Test_InputStreamReader();        System.out.println(test.getStream(URL));    }}

TAG標籤:#java #