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

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

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

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)建字符處理流對(duì)象
             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();
            }
        }
    }
}

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

在這里插入圖片描述

因?yàn)槌绦蚰J(rèn)是以 utf-8 編碼讀取的,而此時(shí)Java.txt文件恰好是 utf-8 編碼,所以可以將內(nèi)容完整的讀取出來(lái)。如果改變Java.txt文件的編碼格式,讀取結(jié)果會(huì)怎樣呢?

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

在這里插入圖片描述

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

因?yàn)槌绦蚰J(rèn)以u(píng)tf8編碼格式讀取文件,而此時(shí)文件編碼為gbk,所以讀取結(jié)果會(huì)產(chǎn)生亂碼。

在這里插入圖片描述

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

轉(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ù)時(shí),如果使用字符流效率更高,并且可以有效解決中文問(wèn)題,建議將字節(jié)流轉(zhuǎn)換成字符流。

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

InputStreamReader

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

在這里插入圖片描述

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

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

代碼示例:

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)換為功能更加強(qiáng)大的字符處理流
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
         //讀取內(nèi)容
        String s = bufferedReader.readLine();
        System.out.println(s);
         //關(guān)閉流
        bufferedReader.close();
    }
}
 

運(yùn)行結(jié)果:

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

在這里插入圖片描述

OutputStreamWriter

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

在這里插入圖片描述

OutputStreamWriterWriter的一個(gè)子類,它其中的構(gòu)造函數(shù)OutputStreamWriter(OutputStream,Charset)可以將一個(gè)字節(jié)輸出流轉(zhuǎn)換成字符輸出流,同時(shí)通過(guò)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("保存成功~~~");
    }
}

運(yùn)行結(jié)果:

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

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

最新評(píng)論

上虞市| 永丰县| 定结县| 资溪县| 高邑县| 进贤县| 东兴市| 屯门区| 布尔津县| 修文县| 兴义市| 景宁| 元江| 安宁市| 永仁县| 兴业县| 文昌市| 揭西县| 古田县| 繁昌县| 巴彦县| 南开区| 喜德县| 惠安县| 固阳县| 辰溪县| 灵寿县| 宜黄县| 佛坪县| 丹东市| 黄石市| 迁安市| 新沂市| 石阡县| 广宗县| 昌邑市| 娱乐| 常熟市| 新邵县| 蒲城县| 二连浩特市|