最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一起來學(xué)習(xí)Java IO的轉(zhuǎn)化流

 更新時間:2022年03月22日 10:55:30   作者:WYSCODER  
這篇文章主要為大家詳細(xì)介紹了Java IO的轉(zhuǎn)化流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

Java IO 轉(zhuǎn)化流

亂碼引起轉(zhuǎn)換流

讀取亂碼

讀取電腦磁盤上的Java.txt文件內(nèi)容,文件路徑: e:\Java\Java.txt,文件編碼格式為 utf-8 。

在這里插入圖片描述

代碼示例:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
 public class TestDemo {
    public static void main(String[] args) {
        BufferedReader bufferedReader = null;
        String filePath = "e:\\Java\\Java.txt";
        try {
            bufferedReader = new BufferedReader(new FileReader(filePath));//創(chuàng)建字符處理流對象
             String s = bufferedReader.readLine();//讀取文件
             System.out.println(s);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {//關(guān)閉處理流
            try {
                if (bufferedReader != null) {
                    bufferedReader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

運行結(jié)果:將文件內(nèi)容讀取了出來。

在這里插入圖片描述

因為程序默認(rèn)是以 utf-8 編碼讀取的,而此時Java.txt文件恰好是 utf-8 編碼,所以可以將內(nèi)容完整的讀取出來。如果改變Java.txt文件的編碼格式,讀取結(jié)果會怎樣呢?

修改Java.txt 文件的編碼格式為gbk,ANSI為國標(biāo)碼,根據(jù)電腦系統(tǒng)識別,當(dāng)前電腦系統(tǒng)為gbk編碼,所以將文件編碼修改為ANSI編碼即可。

在這里插入圖片描述

再次讀取文件結(jié)果出現(xiàn)亂碼

因為程序默認(rèn)以utf8編碼格式讀取文件,而此時文件編碼為gbk,所以讀取結(jié)果會產(chǎn)生亂碼。

在這里插入圖片描述

如何解決這個問題?我們可以使用 轉(zhuǎn)換流 來指定輸入流的編碼格式

轉(zhuǎn)換流介紹

轉(zhuǎn)換流有 InputStreamReader 和 OutputStreamWriter兩種。

1. InputStreamReader:Reader的子類,可以將InputStream(字節(jié)流)轉(zhuǎn)換為Reader(字符流)

2. OutputStreamWriter:Writer的子類,可以將OutputStream(字節(jié)流)轉(zhuǎn)換為Writer (字符流)

3. 當(dāng)處理純文本數(shù)據(jù)時,如果使用字符流效率更高,并且可以有效解決中文問題,建議將字節(jié)流轉(zhuǎn)換成字符流。

4. 可以在使用時指定編碼格式(比如utf8,gbk等)

InputStreamReader

InputStreamReader類繼承關(guān)系及構(gòu)造函數(shù)

在這里插入圖片描述

InputStreamReaderReader的一個子類,它其中的構(gòu)造函數(shù)InputStreamReader(InputStream,Charset)可以將一個字節(jié)輸入流轉(zhuǎn)換成字符輸入流,同時通過Charset屬性指定字符集編碼。

用轉(zhuǎn)換流InputStreamReader再次讀取上述示例中Java.txt文件,解決亂碼問題。

代碼示例:

import java.io.*;
 public class InputStreamReaderTest {
    public static void main(String[] args) throws IOException {
        String filePath = "e:\\Java\\Java.txt";
         FileInputStream fileInputStream = new FileInputStream(filePath);
        //將字節(jié)輸入流,轉(zhuǎn)換為字符流 并指定編碼格式為 utf8
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "gbk");
         //將字符流轉(zhuǎn)換為功能更加強大的字符處理流
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
         //讀取內(nèi)容
        String s = bufferedReader.readLine();
        System.out.println(s);
         //關(guān)閉流
        bufferedReader.close();
    }
}
 

運行結(jié)果:

內(nèi)容讀取成功~~~

在這里插入圖片描述

OutputStreamWriter

OutputStreamWriter類繼承關(guān)系及構(gòu)造函數(shù)

在這里插入圖片描述

OutputStreamWriterWriter的一個子類,它其中的構(gòu)造函數(shù)OutputStreamWriter(OutputStream,Charset)可以將一個字節(jié)輸出流轉(zhuǎn)換成字符輸出流,同時通過Charset屬性指定字符集編碼。

代碼示例:

編程將字節(jié)流 FileOutputStream 轉(zhuǎn)換成字符流OutputStreamWriter,并在電腦磁盤上文件hello.txt文件中指定gbk編碼格式寫入“你好,Java!”,文件路徑: e:\Java\hello.txt 。

import java.io.*;
 public class OutputSteamWriterTest {
    public static void main(String[] args) throws IOException {
        String filePath = "e:\\Java\\hello.txt";
         //將字節(jié)輸出流轉(zhuǎn)換為字符輸出流
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(filePath), "gbk");
         String content = "你好,Java!";
         //將內(nèi)容寫進(jìn)文件
        outputStreamWriter.write(content);
         //關(guān)閉流
        outputStreamWriter.close();
         System.out.println("保存成功~~~");
    }
}

運行結(jié)果:

將內(nèi)容寫進(jìn)了hello.txt文件。

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

最新評論

烟台市| 白城市| 壶关县| 云阳县| 军事| 连江县| 吴旗县| 江北区| 呼伦贝尔市| 冷水江市| 资中县| 上蔡县| 齐河县| 宜川县| 咸宁市| 白玉县| 集贤县| 萝北县| 射洪县| 长岭县| 江永县| 山西省| 元谋县| 如东县| 新绛县| 罗定市| 湖南省| 宜章县| 和政县| 固原市| 桂东县| 临夏市| 林州市| 五河县| 博白县| 瑞金市| 叶城县| 治县。| 两当县| 平遥县| 延寿县|