黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java中字符流之輸入,輸出流以及轉(zhuǎn)換流

Java中字符流之輸入,輸出流以及轉(zhuǎn)換流

更新時間:2020-07-17 16:32:50 來源:動力節(jié)點 瀏覽2361次

字符流

一個字符一個字符的讀

mac系統(tǒng)下,一個中文字符占3個字節(jié)默認使用UTF-8的編碼表(通用的編碼表)

Windows系統(tǒng)下,一個中文字符占2個字節(jié)默認使用的GBK的編碼表(簡體中文)

注意:只能操作文本(不能寫圖片、音頻、視頻)

字符輸出流

Writer(所有字符輸出流的父類?抽象類)
????FileWriter
????構(gòu)造方法(綁定寫入的路徑):
????????????????文件
????????????????字符串
????注意:字符輸出流在寫入文件的時候需要調(diào)用刷新方法

代碼實例:
????????FileWriter?fWriter?=?new?FileWriter("/Users/lanou/Desktop/level/haha.txt");
????????fWriter.write(100);
????????//?每次寫入?最好都刷新一次
????????fWriter.flush();
????????//?字符數(shù)組寫入
????????char[]?c?=?{'l','o','n','g'};
????????fWriter.write(c);
????????fWriter.flush();

????????fWriter.write(c,?1,?3);
????????fWriter.flush();

????????//?使用字符串直接寫入
????????fWriter.write("寫一句古詩\n");
????????fWriter.flush();
????????fWriter.write("寫一句古詩\n呃呃呃\n");
????????fWriter.flush();

????????fWriter.write("白日依山盡",?0,?2);

????????//?關(guān)閉資源前?會刷新
????????fWriter.close();

字符輸入流

Reader(所有字符輸入流的父類 抽象類)

讀的時候不能直接讀取字符串,因為字符串很難界定到哪結(jié)束,不太容易判斷一個字符串

循環(huán)讀取:

  FileReader fr = new FileReader("/Users/lanou/Desktop/level/haha.txt");
        int num = 0;
        while ((num = fr.read()) != -1) {
            System.out.println((char)num);
        }
        char[] c = new char[1024];
        while ((num = fr.read(c)) != -1) {
            System.out.println(new String(c, 0, num));
        }
        fr.close();

利用字符流復(fù)制文件

 public class Demo {
            public static void main(String[] args) {
                File file1 = new File("/Users/lanou/Desktop/level/9.jpg");
                File file2 = new File("/Users/lanou/Desktop/XTest/9.jpg");
                name(file1, file2);
            }
            public static void name(File file1,File file2) {
                FileReader fr = null;
                FileWriter fw = null;
                try {
                    fr = new FileReader(file1);
                    fw = new FileWriter(file2);
                    int len = 0;
                    char[] c = new char[1024];
                    while ((len = fr.read(c)) != -1) {
                        fw.write(c, 0, len);
                    }
                } catch (FileNotFoundException e) {
                    throw new RuntimeException("找不到文件");
                } catch (IOException e) {
                    throw new RuntimeException("文件復(fù)制失敗");
                } finally {
                    try {
                        if (fr != null) {
                            fr.close();
                        }
                    } catch (IOException e) {
                        throw new RuntimeException("關(guān)閉資源失敗");
                    } finally {
                        try {
                            if (fw != null) {
                                fw.close();
                            }
                        } catch (IOException e) {
                            throw new RuntimeException("關(guān)閉資源失敗");
                        }
                    }
                }
            }
        }

轉(zhuǎn)換流

OutputStreamWriter(字符流轉(zhuǎn)向字節(jié)流)

作用:可以使用不同編碼格式寫入

需要使用FileOutPutStream類

InputStreamReader(字節(jié)流轉(zhuǎn)向字符流)

作用:可以讀取不同編碼格式的文件

需要使用FileInputStream類

public class Demo {
    public static void main(String[] args) throws IOException {
        getUTF8();
        getGBK();
        readerGBK();
        readUTF8();
    }
    // 利用轉(zhuǎn)換流寫文件 OutputStreamWriter 默認uft8寫
    public static void getUTF8() throws IOException {
        FileOutputStream fos = new FileOutputStream("/Users/lanou/Desktop/level/utf8.txt");
        // 創(chuàng)建轉(zhuǎn)換流 字符流轉(zhuǎn)向字節(jié)流
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        // 寫文件
        osw.write("SC");
        // 只關(guān)閉外層的流
        osw.close();
    }

    // 使用GBK的編碼寫入文件 利用轉(zhuǎn)換流
    public static void getGBK() throws IOException{
        FileOutputStream fos = new FileOutputStream("/Users/lanou/Desktop/level/gbk.txt");
        // 構(gòu)建轉(zhuǎn)換流 傳入編碼格式(編碼格式的字符串 忽略大小寫)
        OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
        osw.write("SC");
        osw.close();
    }
    // 使用GBK的編碼讀取文件 利用轉(zhuǎn)換流
    public static void readerGBK() throws IOException {
        FileInputStream fis = new FileInputStream("/Users/lanou/Desktop/level/gbk.txt");
        InputStreamReader isr = new InputStreamReader(fis, "GBK");
        int len = 0;
        char[] c = new char[1024];
        while ((len = isr.read(c)) != -1) {
            System.out.println(new String(c, 0, len));
        }
        isr.close();
    }
    // 使用uft8的編碼讀取文件 利用轉(zhuǎn)換流
    public static void readUTF8() throws IOException {
        FileInputStream fis = new FileInputStream("/Users/lanou/Desktop/level/utf8.txt");
        InputStreamReader isr = new InputStreamReader(fis);
        int len = 0;
        char[] c = new char[1024];
        while ((len = isr.read(c)) != -1) {
            System.out.println(new String(c, 0, len));
        }
        isr.close();
    }
}

Java中字符流之輸入,輸出流以及轉(zhuǎn)換流

以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java中字符流之輸入,輸出流以及轉(zhuǎn)換流”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 法国18sexxxx性xxx | 精品免费国产一区二区三区 | 韩国一级做a爰片性色毛片 韩国一级黄色大片 | 国内一级野外a一级毛片 | 成人高清视频在线观看大全 | 77久久| 日韩永久免费视频 | 清清草视频在线观看 | 日本一区二区三区免费观看 | 成人国产精品免费软件 | 欧美一线天 | 日韩一级精品久久久久 | 91精品国产亚一区二区三区 | 欧美精品国产综合久久 | 很黄很色又爽很黄很色又爽 | 久久精品国产精品亚洲婷婷 | 好男人社区成人影院在线观看 | 成人一级 | 91探花国产综合在线精品 | 国产99视频精品免费观看7 | 96xxxxx日本人| 日韩视频免费在线播放 | 天天射夜夜骑 | 日韩欧美色视频在线观看 | 黄色片国产 | 88av噜噜| 欧美日韩国产一区二区三区不卡 | 久久综合成人网 | 欧美成人区 | 伦理在线观看 | 日本天堂网在线观看 | 国产一区二区三区在线观看视频 | 亚洲国产精品久久久天堂 | 在线黄色网 | 亚洲三级黄色片 | 免费99视频有精品视频高清 | 黄色网页在线观看 | 手机在线观看黄色网址 | 激情插插插 | 天天夜天干天天爽 | 日韩三级免费观看 |