聚焦:java字节流和字符流
Java中的I/O操作可以分为两种类型:字节流和字符流。字节流用于处理二进制数据,而字符流用于处理文本数据。本文将详细介绍Java中的字节流和字符流,并给出相应的示例代码。
一、字节流
Java中的字节流主要用于处理二进制数据,如图像、音频和视频等。Java中的字节流主要分为InputStream和OutputStream两种类型。
InputStream
InputStream是Java中所有输入流的基类。InputStream中定义了许多方法用于读取字节。以下是InputStream中一些常用的方法:
【资料图】
下面是一个从文件中读取数据并将其显示在控制台上的示例:
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,以正确地处理文本数据。
关键词:
下一篇:最后一页
精心推荐
- 去年京津冀工信部门推进签约570多项高端高新项目
- 京津冀区域协同创新指数增长迅速
- 1至2月河北省工业生产平稳开局 规模以上工业增加值同比增长6.0%
- 浙江绍兴15日0-21时新增41例确诊病例
- 沈阳大气优良天数达近5年来最好水平
- 辽宁实行市级政府集中监管 首站定点冷库加强疫情防控
- 辽宁省25个博士后团队冲刺全国博士后创新创业大赛
- 安徽省宿州市埇桥区大营镇大营新村调整为中风险地区
- 云南哀牢山4名地质调查人员因公殉职原因查明
- 全国首部涉及“非现场执法”的法规施行 浦东新区打造引领区数字化城市治理样板
- 杭州一封控小区完成第三轮核酸检测 前两轮检测均为阴性
- 集采未中选药品现在怎么样了?这组数据告诉你
- “海归”博士后王暾:专注灾害预警科技创新 打通灾害预警“最后一公里”
- 福建宣判一起涉恶案件 10人犯罪团伙强迫交易、非法采矿获刑
-
中新网郑州12月15日电 (记者 韩章云)针对近日网友实名举报中国农业发展银行太康县支行员工夏某华吃空饷一事,中国农业发展银行河南省
-
中新网宿迁12月15日电 (记者 刘林)“房子干净又敞亮,社区漂亮又整洁。”15日,家住江苏宿迁牛角淹社区的袁有亮谈起新家,兴奋的心情
-
中新网通辽12月15日电 (记者 张林虎)15日,记者从内蒙古自治区通辽市科左后旗公安局获悉,该局打掉一个帮助网络犯罪转账的“跑分团队
-
中新网安徽阜阳12月15日电 ( 成展鹏)12月15日,规划占地面积2500亩、投资总额75亿元的安徽省阜阳市太和县保兴医药健康产业园内一片繁
-
中新网杭州12月15日电 (郭其钰 张益聪)从焦虑不安到互帮互助,浙江省杭州市上城区凯旋街道新城市广场B座里的257人经历了难忘的72小时
X 关闭
行业排行
- 1、深圳:积极推进旅游业恢复 扎实推动经济稳定增长
- 2、保定定州提出一系列发展措施 引领体品产业向智能化品牌化高端化迈进
- 3、河北省财政厅充分发挥财政职能作用 促进交通运输事业发展
- 4、太原阳曲人才公寓项目开启施工招标工作 共有1954套人才公寓满足人才居住需求
- 5、山西出口钢构件顺利发货 为企业加强科技创新开辟了更为广阔的发展空间
- 6、上半年泰州姜堰实现新签约亿元和1000万美元以上项目95个 计划总投资208.319亿元
- 7、清华博士非洲修电站 因为他,“内卷”成为网络热词
- 8、内蒙古新增本土确诊病例3例 均在呼伦贝尔满洲里市
- 9、31省份新增新冠肺炎确诊病例67例 其中本土50例
- 10、浙江新增本土确诊病例45例 其中宁波6例、绍兴39例
X 关闭
产业
-
不用跑北京 在家门口也能挂上顶...
日前,我省首个神经疾病会诊中心——首都医科大学宣武医院河北医院...
-
“十四五”期间 河北省将优化快...
从省邮政管理局获悉,十四五期间,我省将优化快递空间布局,着力构...
-
张家口市宣化区:光伏发电站赋能...
3月19日拍摄的张家口市宣化区春光乡曹庄子村光伏发电站。张家口市宣...
-
“张同学”商标被多方抢注 涉及...
“张同学”商标被多方抢注,官方曾点名批评恶意抢注“丁真” ...
-
山东济南“防诈奶奶团”花式反诈...
中新网济南12月15日电 (李明芮)“老有所为 无私奉献 志愿服...
-
广州新增1例境外输入关联无症状...
广州卫健委今日通报,2021年12月15日,在对入境转运专班工作人...
-
西安报告初筛阳性病例转为确诊病例
12月15日10:20,经陕西西安市级专家组会诊,西安市报告新冠病毒...
-
广东东莞新增本土确诊病例2例 ...
(抗击新冠肺炎)广东东莞新增本土确诊病例2例 全市全员核酸检测...
-
中缅边境临沧:民警深夜出击捣毁...
中新网临沧12月15日电 (胡波 邱珺珲)记者15日从云南临沧边境...
-
“土家鼓王”彭承金:致力传承土...
中新网恩施12月15日电 题:“土家鼓王”彭承金:致力传承土家...