全球微动态丨java字节流和字符流
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中的字节流和字
世界球精选!交通银行安徽省分行:1000亿金融支持 赋能绿色发展
日前,安徽省生态环境厅和交通银行安徽省分行举行战略合作签约。据悉,未来五年内,交行安徽省分行将提供不低于1000亿元金融支持,赋能安徽绿
正常尿酸值是多少为正常_正常尿酸值是多少
1、男性尿酸正常值一般为210-416umol L,女性绝经前为150-357umol L。2、绝经后,女性的尿酸值与男
扬州好的白癜风医院的排名|微头条
扬州好的白癜风医院的排名-哪些因素会阻碍白癜风的治疗呢?【疾病描述】:白癜风是一种容易再发作的疾病。当患者患上此病时,一定要及时治疗,
弹壳特攻队愤怒公牛怎么打 boss打法攻略
在弹壳特攻队中愤怒公牛应对的方式还是比较简单的,不会太费经就能解决这个boss,那么弹壳特攻队愤怒公牛怎么打?下面就给大家带来相关的攻略
【环球聚看点】港股异动 | 上美股份(02145)盘中涨超35% 新品牌上市7个月营收超2500万 近日获纳入港股通名单
智通财经APP获悉上美股份02145盘中涨超35截至发稿涨2693报3205港元成交额179709万港元消息面上上美股份近期发布全年业绩公司报告期内收入2675
摘口罩的时候到了?专访李侗曾:戴口罩必要性正变小|全球关注
近期,上海、宁波、杭州、西安等多地公共交通相关部门已发布最新消息,对乘客佩戴口罩不再作强制要求。中国工程院院士钟南山、中国疾控中心流
耍帅的代价太可怕,请发给身边的摩友
春暖花开,又到了跑山出游的好日子,但这样的好日子却暗藏危机。运气好的有惊无险,点背的却是天降横祸,大家先看看这个小视频吧,我要是这个
关注:出行更方便!金山这条主干道路预计今年年底完工!
日前,金山区亭林镇新社区配套道路红梓路(亭浩路-亭凯路)新建工程正在有序推进中,预计于今年年底正式完工。红梓路作为亭林新
公告速递:汇添富纳斯达克生物科技ETF基金因境外主要市场节假日暂停申购、赎回业务 天天信息
4月4日汇添富基金管理股份有限公司发布《关于汇添富纳斯达克生物科技交易型开放式指数证券投资基金(QDII)因境外主要市场节假日暂停申购、赎
世界速读:教师该如何让ChatGPT为学术写作服务
中国科学报郭英剑ChatGPT诞生后,对于写作产生了巨大的影响。虽然此前已有很多致力于机器写作的应用程序,但大多限于日常生活交流的写作。相比
【环球新视野】为啥蚂蟥能寄生在人类体内,却无法寄生在鸡体内?鸡为啥不怕蚂蟥
而寄生蚂蟥通常以蚂蟥卵的形式存在于溪水泉水中,当人或者动物喝了溪水泉水时,蚂蟥便会在寄生在寄主的消化道或者呼吸道里,它们也是靠吸血卫
每日看点!中央政法委长安剑:“张继科”刷屏,要查清三件事
4月2日晚间“张继科借条”冲上微博热搜首位此外微博热搜榜首前十也有多条与张继科相关词条有关张继科因借钱欠债及传播女演员隐私视频传闻在...
【环球播资讯】CS2的影响力!CSGO三月开箱近4千万 消费超1亿美元
csgocasetracker com统计数据显示,《CSGO》玩家3月以来共开了3950万个箱子,消费金额超1亿美元。几乎是2月新纪录2770万箱的1 5倍。外媒Dexerto指出,玩家日…
世界快资讯:TFBOYS最新机场照来了!三人同时现身,演唱会倒计时开启!
TFBOYS出道已有六年的时间,在六周岁生日的这一天,TFBOYS也给予了粉丝意料不到的惊喜,三人同框合体参加了公司的年会,走了红毯又接受了采访
跖筋膜炎的症状及治疗方法_跖筋膜炎怎么办|快播
1、足底筋膜炎是指足底筋膜的无菌性炎症反应,常因长期站立和过度活动、牵引引起。2、治疗主要是休息,避免过多的运动,穿软鞋
世界看点:小饼卷肉料添香 实探淄博“烧烤江湖”
饕客们将烤炉、小饼、小葱称之为淄博烧烤的“灵魂三件套”,形容“小炉子代表温度,小饼代表包容,小葱代表豪爽”,到淄博可以享受“自己动...
【天天播资讯】联合国秘书长呼吁为孤独症患者提供更多包容和无障碍服务
新华社联合国4月2日电(记者王建刚)联合国秘书长古特雷斯2日呼吁国际社会为孤独症患者提供更多包容和无障碍服务。当天,古特雷斯在世界提高孤
鼎通科技:河南鼎润生产基地已完成厂房部分已进行投产
鼎通科技12月30日在投资者互动平台表示,河南鼎润的生产基地厂房占地约120亩,大概建设6万平方米,目前首发募投项目建设
腰疼吃什么食物好点_腰疼吃什么食物|全球新视野
1、腰痛是日常生活中常见的症状之一。2、临床上引起腰痛的原因多包括劳损,如腰肌损伤、筋膜炎、感冒、腰椎间盘突出、尿路感染
【全球时快讯】2023年4月3日山东省苯乙烯价格最新行情预测
据中国报告大厅对2023年4月3日山东省苯乙烯价格最新走势监测显示:2023年4月3日山东省苯乙烯(国标优等品)报价84
要闻:2023款坦克500正式上市 改进的多是与驾驶和安全相关内容
近日,备受瞩目的2023款坦克500(图片|配置|询价)焕新上市,售价区间为33 5-39 5万元,并同步开放了户外休闲包、硅油风扇、前桥电控差速锁、20寸商务
北松茸什么时间采,回答正确我给20分谁知道机器猫带大雄他们摘松茸是第几集
本文目录一览1,回答正确我给20分谁知道机器猫带大雄他们摘松茸是第几集2,东北松茸什么时候出什么时候没3,请教这种果树什么时候挖最好4,三
每日快报!27°黔地标时评|苑坪玉:让考古遗产焕发时代光彩
诗曰:蛮荒之地不蛮荒,历史曾经很辉煌。漫夸文化积淀厚,更须开创新篇章。近日,贵安大松山墓群入选“2022年度全国十大考古新发现”。继赫...
即时:英语邀请函的格式范文80字(汇总3篇)
英语邀请函的格式范文80字第1篇dearsirs,ournew-factorywillbecommencingproductiononjanuary1andweshouldliketoinviteyouandyourwifetobepresentatacelebratio
焦点短讯!哈登仅11分6助,76人完败雄鹿,将自己逼上绝境!字母哥33分14板
哈登仅11分6助,76人完败雄鹿,将自己逼上绝境!字母哥33分14板,雄鹿队,霍勒迪,波蒂斯,字母哥,76人队,美国篮球,阿德托昆博,詹姆斯·哈登,国际
环球简讯:有机会冲入前6?浓眉:控制好能控制的事 只需赢球剩下不过多考虑
今日NBA常规赛,湖人客场134-109轻取火箭。赛后,浓眉接受了记者的采访。在谈到球队有机会冲入前6,避免打附加赛时,浓眉表示:“我们要控制好
环球热点!俄罗斯圣彼得堡咖啡店爆炸事件已致1死25伤
当地时间4月2日,俄罗斯圣彼得堡市长表示,在当天的咖啡店爆炸事件中受伤的人数已经上升到25人,其中19人入院接受治疗。