当前位置:首页>滚动 > >正文

java字节流和字符流

  • 2023-04-07 08:25:17来源:腾讯云

Java中的I/O操作可以分为两种类型:字节流和字符流。字节流用于处理二进制数据,而字符流用于处理文本数据。本文将详细介绍Java中的字节流和字符流,并给出相应的示例代码。


(资料图片仅供参考)

一、字节流

Java中的字节流主要用于处理二进制数据,如图像、音频和视频等。Java中的字节流主要分为InputStream和OutputStream两种类型。

InputStream

InputStream是Java中所有输入流的基类。InputStream中定义了许多方法用于读取字节。以下是InputStream中一些常用的方法:

int read(): 从输入流中读取一个字节的数据。如果已到达文件结尾,则返回-1。int read(byte[] b): 从输入流中读取最多b.length个字节的数据,并将其存储到缓冲区b中。返回实际读取的字节数。int available(): 返回可以从输入流中读取的字节数。

下面是一个从文件中读取数据并将其显示在控制台上的示例:

import java.io.*;public class InputStreamExample {    public static void main(String[] args) throws IOException {        InputStream in = new FileInputStream("test.txt");        int b;        while ((b = in.read()) != -1) {            System.out.print((char) b);        }        in.close();    }}

在上述示例中,我们使用FileInputStream打开一个文件,并使用read()方法读取文件中的每一个字节,并将其显示在控制台上。

OutputStream

OutputStream是Java中所有输出流的基类。OutputStream中定义了许多方法用于写入字节。以下是OutputStream中一些常用的方法:

void write(int b): 将指定的字节写入输出流中。void write(byte[] b): 将指定的字节数组中的数据写入输出流中。void flush(): 刷新输出流并强制写入所有缓冲的输出字节。

下面是一个将数据写入文件的示例:

javaCopy codeimport java.io.*;public class OutputStreamExample {    public static void main(String[] args) throws IOException {        OutputStream out = new FileOutputStream("test.txt");        String str = "Hello, world!";        byte[] b = str.getBytes();        out.write(b);        out.close();    }}

在上述示例中,我们使用FileOutputStream打开一个文件,并使用write()方法将一个字符串转换为字节数组,然后将其写入文件中。

二、字符流

Java中的字符流主要用于处理文本数据。字符流可以直接处理Unicode字符,因此在处理中文等特殊字符时很方便。Java中的字符流主要分为Reader和Writer两种类型。

Reader

Reader是Java中所有读取字符流的基类。Reader中定义了许多方法用于读取字符。以下是Reader中一些常用的方法:

int read(): 从输入流中读取一个字符的数据。如果已到达文件结尾,则返回-1。int read(char[] c): 从输入流中读取最多c.length个字符的数据,并将其存储到缓冲区c中。返回实际读取的字符数。

下面是一个从文件中读取数据并将其显示在控制台上的示例:

import java.io.*;public class ReaderExample {    public static void main(String[] args) throws IOException {        Reader reader = new FileReader("test.txt");        int c;        while ((c = reader.read()) != -1) {            System.out.print((char) c);        }        reader.close();    }}

在上述示例中,我们使用FileReader打开一个文件,并使用read()方法读取文件中的每一个字符,并将其显示在控制台上。

Writer

Writer是Java中所有写入字符流的基类。Writer中定义了许多方法用于写入字符。以下是Writer中一些常用的方法:

void write(int c): 将指定的字符写入输出流中。void write(char[] c): 将指定的字符数组中的数据写入输出流中。void flush(): 刷新输出流并强制写入所有缓冲的输出字符。

下面是一个将数据写入文件的示例:

import java.io.*;public class WriterExample {    public static void main(String[] args) throws IOException {        Writer writer = new FileWriter("test.txt");        String str = "Hello, world!";        writer.write(str);        writer.close();    }}

在上述示例中,我们使用FileWriter打开一个文件,并使用write()方法将一个字符串写入文件中。

三、字节流和字符流的区别

在Java中,字节流和字符流有以下区别:

处理的数据类型不同

字节流主要用于处理二进制数据,如图像、音频和视频等。字符流主要用于处理文本数据。

输入/输出方式不同

字节流以字节为单位进行读取和写入,而字符流以字符为单位进行读取和写入。

编码方式不同

字节流不关心数据的编码方式,可以处理任何类型的数据。而字符流必须使用特定的字符编码方式,如UTF-8或GBK,以正确地处理文本数据。

标签:

延伸阅读

推荐阅读

java字节流和字符流

Java中的I O操作可以分为两种类型:字节流和字符流。字节流用于处理二进制数据,而字符流用于处理文本数据。本文将详细介绍Java中的字节流和字

当前最新:疾病预防手抄报电子版_疾病预防手抄报

1、先在上面画页眉文字,然后画背景边框,在文字旁边画几个气团,再在左边画一杯热气腾腾的茶和两颗药丸。2、然后在右下角画两

天天看点:无花果树是凶还是吉(栽无花果树有什么讲究)

听说家里不能种无花果树,这是怎么回事?无花果是凶树还是吉树?

环球今亮点!龙虎榜丨舒泰神今日涨停 机构合计净买入33.94万元

4月6日,舒泰神今日涨停,龙虎榜数据显示,上榜营业部席位全天成交1 08亿元,占当日总成交金额比例为19 83%。其中,买入金额为7145 09万元,卖

全球今日报丨国家税务总局:税收大数据显示企业对未来生产经营的信心在转强

今天(4月6日)上午10时,国新办举行“权威部门话开局”系列主题新闻发布会,介绍“更好发挥税收职能作用更优服务经济社会高质量发展”有关...

4月6日东方红睿华沪港深混合净值下跌0.19% 世界报道

4月6日,截至收盘,东方红睿华沪港深混合(169105)较前一交易日净值下跌0 19%,跑输上证指数,单位净值为1 55,累计净值为1 9080。东方红睿华

中联重科:施罗德集团近一年减持约1.24亿港元公司H股_每日聚焦

4月6日消息,据港交所数据,施罗德集团于3月31日公布减持中联重科H股,持股比例由2022年4月26日的9 93%降至7 91%;持股数减少约3194万股至约1

百果园归母净利润大增40%,2022年门店扩张至5650家 环球动态

本文来源:时代商学院作者:郑少娜百果园集团(2411 HK)是中国水果行业的领先企业之一,该公司采用多品牌策略迅速占领市场份额,主要渠道品牌

当前时讯:三次闯关折戟,紫林醋业再战A股,仍难摆脱“地域困境”|IPO观察

图片来源:视觉中国“茶米油盐酱醋茶”作为日常生活中不可或缺的存在,其地位不言而喻。近日,山西紫林醋业股份有限公司(下称“

【世界新视野】心脏的“门”关不上了 长征医院多学科联动,运用“瓣中瓣”技术解决致命“心事”

上海长征医院心血管外科团队仅通过胸壁上不到4厘米的小切口,运用“瓣中瓣”技术,成功实施上海市首例同期经心尖入路再次二尖瓣置换手术和...

信用卡逾期一个月补救方式是什么?信用卡逾期了7天严重吗

信用卡逾期一个月补救方式是什么出现逾期情况之后,一定要及时还清欠款并联系银行,解释自己造成逾期的原因,并不是想要故意逾期,申请是否可

中原证券:给予中国银河增持评级 今日看点

中原证券股份有限公司张洋近期对中国银河进行研究并发布了研究报告《2022年年报点评:自营探索中性策略,国际业务实现差异化竞争》,本报告对

手刃旧主!祖巴茨:对阵湖人的比赛并不重要 我们只是想球去赢球

直播吧4月6日讯今日NBA常规赛,快船125-118战胜湖人。赛后,快船中锋祖巴茨接受了记者采访。谈到洛城德比,祖巴茨讲道:“对阵湖人的比赛并不

福彩3D第2023086期逸飞道人四字真经

福彩3D2023086期上期回顾:福彩3D第2023085期奖号为:568。[扫码下载app,中过数字彩1千万以上的专家都在这儿!]

琴妹妹:4.6日OPEC+减产石油,或助力金价|天天速讯

琴妹妹:4 6日OPEC+减产石油,或助力金价基本面变化:芬兰加入北约成为第31个国家,北约的战略布局就是消耗俄罗斯,这一局北约美国胜出,沙特

嘉曼服饰:4月4日融资净买入34.93万元,连续3日累计净买入69.34万元-世界快看点

4月4日,嘉曼服饰(301276)融资买入64 62万元,融资偿还29 69万元,融资净买入34 93万元,融资余额1963 23万元,近3个交易日已连续净买入累计

世界微头条丨24小时长效锁水 妮维雅男士精华露39.9元狂促:送洁面乳50gx2

天猫妮维雅官方旗舰店,妮维雅男士水活冰酷精华露50g官方定价89 9元,可领50元大额券,实付39 9元包邮,另外赠送5

环球关注:海外主要家电公司和北美五大运营商22年年报总结

1)对复苏链条继续保持乐观,尤其是与更新 二手房交易关联度较高的白电板块。地产销售的修复一方面有利于改善当期交房及未来新

绍兴市区2023年计划供地2.46万亩 含住宅用地4236亩占比17.2%_世界动态

绍兴市区2023年计划供地2 46万亩含住宅用地4236亩占比17 2%,绍兴市,越城区,柯桥区,上虞区,商品住房,住宅用地

优酷视频怎么下载到手机里?_实时焦点

优酷视频怎么下载到手机里?一、优酷视频下载到手机里的方法:1、打开【手机优酷】;2、点击优酷右上角【三个点】的按钮,然后

环球速看:邻水县丰禾镇中心小学开展优质课展评活动

为提升青年教师课堂教学水平,促进其专业成长,4月4日,邻水县丰禾镇中心小学举行了《生命·生态·安全》优质课展评活动,共有6位优秀教师参加...

厦门象屿旗下湖北楚象应邀赴“相约春天赏樱花”经贸洽谈活动作主题演讲

3月23日,由湖北省政府主办的“相约春天赏樱花”经贸洽谈暨世界500强对话湖北活动在武汉举行,象屿股份旗下湖北楚象供应链集团有限公司应邀...

荣威怎么样值得买吗_荣威怎么样

1、我是荣威750车主,我不推荐你购买荣威车。2、我对这车的评价是:质量比外观差的太多。3、关键是发动机质量太差,产品

介休市气象局发布大风蓝色预警【Ⅳ级/一般】

介休市气象局发布大风蓝色预警【Ⅳ级 一般】

讯息:整屋定制品牌排行榜_整屋定制十大品牌

1、贝宝依曼贝宝依曼总部设立在广东省,广东省著名品牌。2、是国内第一家提出全屋定制和家具家电化概念的企业。3、同时也是国

我用AI“复活”了爷爷 全球动态

死亡并不可怕,遗忘才是最终的告别,rememberme(记住我)。

【世界播资讯】刘嘉玲晒与彭于晏合照 ! 男方黝黑邋遢,此前已“消失”一年多

随着春天的到来,越来越多的人结伴踏春,享受明媚好时光,明星也不例外。这不,刘嘉玲就在社交平台晒出了自己的春游照片。他们踏春一共4个人,

当前关注:环球漫评|“五个一百”,吹响新时代团结奋斗号角

漫画作者:史国志春来潮涌东风劲,扬帆奋进正当时。近日,由中央网信办主办的2022中国正能量“五个一百”网络精品征集评选展播活动正在如火...

2023绍兴二模各科试卷及答案汇总!_更新中

2023届浙江绍兴高三二模将于4月11日开考,各科试卷及答案正在更新中,在本文圆梦小编整理了2023绍兴二模全科试题及参

【天天播资讯】德江县气象台发布大风蓝色预警信号【Ⅳ/一般】

德江县气象台发布大风蓝色预警信号【Ⅳ 一般】

猜您喜欢

Copyright ©  2015-2022 华中服装网版权所有  备案号:京ICP备12018864号-26   联系邮箱:2 913 236 @qq.com