在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

java的字符流分析

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-10 15:38 ? 次閱讀

上次聊到了 java字符流 Reader,今天來看看它的好朋友 Writer 字符流。

Writer

java 中的 IO 輸出流不是只有 OutputStream 還有按字符輸出的 Writer。

OutputStreamWriter
字節(jié)流,以 byte 為單位字符流,以 char 為單位
輸出字節(jié)(0~255):void write(int b)輸出字符(0~65535):void write(int c)
輸出字節(jié)數(shù)組:void write(byte[] b)輸出字符數(shù)組:void write(char[] c)

和 OutputStream 一樣,Writer 也是所有字符輸出流的超類。主要的方法是:public void write(char cbuf[]) throws IOException, write() 方法將 cbuf 參數(shù)全部輸出,write(String str) 和 write(int c) 兩個方法最終調(diào)用的還是 write(char cbuf[])

FileWriter

FileWriter 就是向文件中寫入字符流的 Writer。new FileWriter(fileName) 構(gòu)造函數(shù)是將文件從頭開始寫入并不是在文件結(jié)尾處繼續(xù)寫入。new FileWriter(fileName, true) 則是在文件結(jié)尾處寫入。

private void fileWriteDemo() throws IOException {
    Writer writer = new FileWriter("D:writer.txt");
    writer.write("測試寫入".toCharArray());
    writer.close();
}

Writer 實現(xiàn)了 Closeable 接口,可以用 try(Writer writer = new FileWriter("D:writer.txt")) {} 的方式關(guān)閉掉資源。

OutputStreamWriter

OutputStreamWriter 將輸出的字符流轉(zhuǎn)換為字節(jié)流。可以使用指定的編碼字符集。new OutputStreamWriter(OutputStream out, Charset cs) 。

private void outputStreamWriteDemo() throws IOException {
    // 亂碼
    try(OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("D:writer.txt"), "gb2312")) {
        writer.write("杺");
        writer.write(66);
    }

    // 正常
    try(OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("D:writer.txt", true), "gbk")) {
        writer.write("杺");
        writer.write(66);
    }

}

StringWriter 和 CharArrayWriter

StringWriter 內(nèi)部有一個 StringBuffer 對象作為其緩沖區(qū)。可以利用其緩沖區(qū)中的內(nèi)容來構(gòu)造字符串。

private void stringWriteDemo() throws IOException {
    String str = "寫入測試";
    try(StringWriter writer = new StringWriter()) {
        writer.write(str);
        writer.write(str);
        System.out.println(writer.getBuffer().toString());
    }

}

CharArrayWriter 和 StringWriter 幾乎一樣,也是在內(nèi)存中構(gòu)造一個字符串緩沖區(qū)。不過底層不是一個 StringBuffer 了,是 char 的數(shù)組,默認(rèn) 32 個長度。

BufferedWriter

BufferedWriter 是一個緩沖的字符輸出流,為其他 Writer 提供緩沖的功能。

private void bufferedWriteDemo() throws IOException {
    FileWriter fileWriter = new FileWriter("D:writer.txt", true);
    try(BufferedWriter writer = new BufferedWriter(fileWriter)) {
        writer.write(65);
        writer.write(66);
    }
    fileWriter.close();

}

總結(jié)

介紹了幾種常用 Writer 輸出流的使用方式。FileWriter 用于寫入文件,BufferedWriter 自帶緩沖區(qū),StringWriter 和 CharArrayWriter 基于內(nèi)存,OutputStreamWriter 將字符流轉(zhuǎn)為字節(jié)流。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8617

    瀏覽量

    151314
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2970

    瀏覽量

    104818
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1838

    瀏覽量

    32270
  • 字符
    +關(guān)注

    關(guān)注

    0

    文章

    233

    瀏覽量

    25222
  • Writer
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    7334
收藏 人收藏

    評論

    相關(guān)推薦

    Java程序設(shè)計:7.5.1 字符緩沖#Java

    JAVA字符
    學(xué)習(xí)硬聲知識
    發(fā)布于 :2022年11月16日 15:58:08

    Java程序設(shè)計:7.5.2 字符緩沖舉例#Java

    JAVA字符
    學(xué)習(xí)硬聲知識
    發(fā)布于 :2022年11月16日 15:58:36

    Java中的輸入輸出盤點

    Java中的分為兩種,一種是字節(jié)流,另一種是字符,分別由四個抽象類來表示(每種包括輸入和輸出兩種所以一共四個):InputStream
    發(fā)表于 07-11 07:56

    基于數(shù)據(jù)Java字節(jié)碼分析

    本文基于數(shù)據(jù)框架理論,提出了如何將數(shù)據(jù)分析方法應(yīng)用于JAVA 字節(jié)碼中,通過建立數(shù)據(jù)與半格、數(shù)據(jù)
    發(fā)表于 12-25 13:22 ?9次下載

    java與文件實驗

    實驗10 與文件一、實驗?zāi)康?1. 理解數(shù)據(jù)的概念2. 理解Java的層次結(jié)構(gòu)3. 理解文件的概念二、實驗要求 1. 掌握字節(jié)流
    發(fā)表于 09-23 19:04 ?1920次閱讀

    實例解析Java字符串內(nèi)存管理方法

    應(yīng)用服務(wù)器運行過程中,約40%的活躍堆空間被用來保存字符串?dāng)?shù)據(jù)[2]。 通過對Java字符串操作接口的分析可以發(fā)現(xiàn),隨著這些操作的運行會產(chǎn)生較多的無用
    發(fā)表于 10-27 10:20 ?1次下載
    實例解析<b class='flag-5'>Java</b><b class='flag-5'>字符</b>串內(nèi)存管理方法

    Java中一種字符串的內(nèi)存管理方法

    應(yīng)用服務(wù)器運行過程中,約40%的活躍堆空間被用來保存字符串?dāng)?shù)據(jù)[2]。 通過對Java字符串操作接口的分析可以發(fā)現(xiàn),隨著這些操作的運行會產(chǎn)生較多的無用
    發(fā)表于 11-30 17:39 ?587次閱讀
     <b class='flag-5'>Java</b>中一種<b class='flag-5'>字符</b>串的內(nèi)存管理方法

    理解Java字符與字節(jié)流的區(qū)別

    JDK稱為Java開發(fā)包或Java開發(fā)工具,是一個編寫Java的Applet小程序和應(yīng)用程序的程序開發(fā)環(huán)境。JDK是整個Java的核心,包括了Jav
    發(fā)表于 12-04 10:39 ?1122次閱讀
    理解<b class='flag-5'>Java</b>中<b class='flag-5'>字符</b><b class='flag-5'>流</b>與字節(jié)流的區(qū)別

    Java 字節(jié)流 字符 轉(zhuǎn)換流

    Java運行系統(tǒng)使用字節(jié)碼驗證過程來保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網(wǎng)上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預(yù)防惡意的小應(yīng)用程序用它自己的版本來代替標(biāo)準(zhǔn)Java類。
    發(fā)表于 12-04 11:15 ?1441次閱讀
    <b class='flag-5'>Java</b> 字節(jié)流 <b class='flag-5'>字符</b><b class='flag-5'>流</b> 轉(zhuǎn)換流

    基礎(chǔ):Java IO學(xué)習(xí)總結(jié)

    IO的分類 根據(jù)處理數(shù)據(jù)類型的不同分為:字符和字節(jié)流 根據(jù)數(shù)據(jù)流向不同分為:輸入流和輸出
    發(fā)表于 03-08 14:38 ?2077次閱讀

    字符和字節(jié)流有什么那區(qū)別

    字符流在Java中,根據(jù)處理的數(shù)據(jù)單位不同,分為字節(jié)流和字符字符是由
    發(fā)表于 12-20 17:46 ?8058次閱讀
    <b class='flag-5'>字符</b><b class='flag-5'>流</b>和字節(jié)流有什么那區(qū)別

    Java反射機制清空字符串導(dǎo)致業(yè)務(wù)異常分析

    JVM為了提高性能和減少內(nèi)存開銷,在實例化字符串常量時進行了優(yōu)化。JVM在Java堆上開辟了一個字符串常量池空間(StringTable),JVM通過ldc指令加載字符串常量時會調(diào)用
    的頭像 發(fā)表于 06-22 11:17 ?1022次閱讀

    如何利用Java判斷一個字符串是否包含某個字符

    如何利用Java通過不同的方法來判斷一個字符串是否包含某個字符。 **2 ****方法** 1. .contains方法
    的頭像 發(fā)表于 02-17 15:13 ?1507次閱讀
    如何利用<b class='flag-5'>Java</b>判斷一個<b class='flag-5'>字符</b>串是否包含某個<b class='flag-5'>字符</b>

    Java中如何判斷字符相等

    在Python中判斷字符相等與判斷數(shù)字類型時所用的方法相同都是使用”==”來進行判定,在Java中當(dāng)我們調(diào)用Scanner,進行輸入字符串判定時,則會無法進行判定。
    的頭像 發(fā)表于 02-24 10:41 ?800次閱讀
    <b class='flag-5'>Java</b>中如何判斷<b class='flag-5'>字符</b>相等

    java switch case 能不能用字符

    Java的switch語句在處理字符串方面有一些限制。在Java 7之前,switch語句只能處理整數(shù)類型的表達式,如int或char。但從Java 7開始,
    的頭像 發(fā)表于 11-30 14:46 ?2084次閱讀
    主站蜘蛛池模板: 亚洲一二三四| 久操视频在线观看免费| 久久网站免费观看| 久久夜色精品国产飘飘| 么公的好大好硬好深好爽在线视频| 欧美天堂视频| 精品香港经典三级在线看| 国产三区视频| 在线观看s色| 日韩一级片免费| 俺色也| 91日韩精品天海翼在线观看| 91精选视频在线观看| 天天在线天天在线天天影视| 色欲情狂| se94se最新网站| 久久天天躁夜夜躁狠狠躁2015| 激情综合五月天丁香婷婷| 天天爽天天狼久久久综合| 欧美在线视频7777kkkk| 在线视频免费观看| 国产自在自线午夜精品视频在| 午夜视频在线观看免费高清| 天天干天天干天天| 天天曰天天干天天操| 国产手机在线看片| 2015xxxx欧美| 亚洲qingse中文在线| 亚洲男人的天堂在线播放| 亚洲瑟瑟网| 拍拍免费视频| jiuse视频| 爱我免费视频观看在线www| 天天玩天天操| 5060精品国产福利午夜| 看黄视频免费| 日韩欧美一卡二区| 成人青草亚洲国产| 日本二区免费一片黄2019| 成人亚洲电影| 国产成人午夜片在线观看|