<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java `InputStreamReader`類 > 原文: [https://www.programiz.com/java-programming/inputstreamreader](https://www.programiz.com/java-programming/inputstreamreader) #### 在本教程中,我們將借助示例學習 Java `InputStreamReader`及其方法。 `java.io`包的`InputStreamReader`類可用于將字節數據轉換為字符數據。 它擴展了抽象類`Reader`。 ![The InputStreamReader class is a suclass of Java Reader.](https://img.kancloud.cn/06/25/062580b1789bedb33be9aea30e116750_456x372.png "Java InputStreamReader Class") `InputStreamReader`類可與其他輸入流一起使用。 它也被稱為字節流和字符流之間的橋梁。 這是因為`InputStreamReader`從輸入流中讀取字節作為字符。 例如,某些字符需要 2 個字節才能存儲在存儲器中。 要讀取此類數據,我們可以使用輸入流讀取器,該讀取器一起讀取 2 個字節并將其轉換為相應的字符。 * * * ## 創建一個`InputStreamReader` 為了創建一個`InputStreamReader`,我們必須首先導入`java.io.InputStreamReader`包。 導入包后,就可以在這里創建輸入流讀取器。 ```java // Creates an InputStream FileInputStream file = new FileInputStream(String path); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); ``` 在上面的示例中,我們創建了一個名為`input`的`InputStreamReader`以及名為`file`的`FileInputStream`。 在這里,文件中的數據使用某些默認字符編碼存儲。 但是,我們也可以在文件中指定字符編碼的類型(**UTF8** 或 **UTF16**)。 ```java // Creates an InputStreamReader specifying the character encoding InputStreamReader input = new InputStreamReader(file, Charset cs); ``` 在這里,我們使用了`Charset`類來指定文件中的字符編碼。 * * * ## `InputStreamReader`的方法 `InputStreamReader`類提供了`Reader`類中存在的不同方法的實現。 ### `read()`方法 * `read()` - 從讀取器讀取單個字符 * `read(char[] array)` - 從讀取器讀取字符并將其存儲在指定的數組中 * `read(char[] array, int start, int length)` - 從讀取器中讀取等于`length`的字符數,并從`start`開始存儲在指定的數組中 例如,假設我們有一個名為`input.txt`的文件,其內容如下。 ```java This is a line of text inside the file. ``` 讓我們嘗試使用`InputStreamReader`讀取此文件。 ```java import java.io.InputStreamReader; import java.io.FileInputStream; class Main { public static void main(String[] args) { // Creates an array of character char[] array = new char[100]; try { // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); // Reads characters from the file input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); } catch(Exception e) { e.getStackTrace(); } } } ``` **輸出** ```java Data in the stream: This is a line of text inside the file. ``` 在上面的示例中,我們使用文件輸入流創建了一個輸入流讀取器。 輸入流讀取器與文件`input.txt`鏈接。 ```java FileInputStream file = new FileInputStream("input.txt"); InputStreamReader input = new InputStreamReader(file); ``` 要從文件中讀取字符,我們使用了`read()`方法。 * * * ## `getEncoding()`方法 `getEncoding()`方法可用于獲取用于在輸入流中存儲數據的編碼類型。 例如, ```java import java.io.InputStreamReader; import java.nio.charset.Charset; import java.io.FileInputStream; class Main { public static void main(String[] args) { try { // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader with default encoding InputStreamReader input1 = new InputStreamReader(file); // Creates an InputStreamReader specifying the encoding InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8")); // Returns the character encoding of the input stream System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); } catch(Exception e) { e.getStackTrace(); } } } ``` **輸出**: ```java The character encoding of input1: Cp1252 The character encoding of input2: UTF8 ``` 在上面的示例中,我們創建了兩個輸入流讀取器,分別名為`input1`和`input2`。 * `input1`未指定字符編碼。 因此,`getEncoding()`方法返回默認字符編碼的規范名稱。 * `input2`指定字符編碼 **UTF8**。 因此,`getEncoding()`方法返回指定的字符編碼。 **注意**:我們已經使用`Charset.forName()`方法來指定字符編碼的類型。 要了解更多信息,請訪問 [Java `Charset`(Java 官方文檔)](https://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html "Java Charset (official Java documentation)")。 * * * ### `close()`方法 要關閉輸入流讀取器,我們可以使用`close()`方法。 調用`close()`方法后,我們將無法使用讀取器讀取數據。 * * * ## `InputStreamReader`的其他方法 | 方法 | 描述 | | --- | --- | | `ready()` | 檢查流是否準備好被讀取 | | `mark()` | 標記流中已讀取數據的位置 | | `reset()` | 將控件返回到流中設置標記的點 | 要了解更多信息,請訪問 [Java `InputStreamReader`(官方 Java 文檔)](https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html "Java InputStreamReader (official Java documentation)")。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看