Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
Java 读写操作
IO类图
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
1). java读写文件的IO流分两大类,字节流和字符流,基类分别是字符:Reader和Writer;字节:InputStream和OutPutStream。
2). 字符流分为FileReader和FileWrtier,这两个的父类是InputStreamReader和OutStreamWrtier。
3). 字节流分为FileInputStream和FileOutPutStream。
4). 这几个类之间的关系网是:
Reader->InputStreamReader->FileReader
Reader->BufferedReader
InputStream->FileInputStream
InputStream->FilterInputStream->BufferedInputStream
InputStreamReader, 它是字节转换为字符的桥梁
字节流字符流区别
1).字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的
实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字
符。
2).字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字
符串,而字节流处理单元为1个字节,操作字节和字节数组。
所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而
成的。
3).字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或
者字符串,字节流提供了处理任何类型的IO操作的功能,但它不能直接处理
Unicode字符,而字符流就可以;
因此:音频文件、图片、歌曲,就用字节流好点;如果是中文(文本)的,用字符流更
好。
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
按行操作
在FileReader中的方法都是从InputStreamReader中继承过来的。read()方法是比较好费时间的,如果为了提高效率我们可以使用BufferedReader对Reader进行包装,这样可以提高读取得速度,我们可以一行一行的读取文本,使用readLine()方法。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt")));
流的程序步骤
1).创建文件对象 File file = new File("xxx.txt");
2).用流装载文件 FileReader fr = new FileReader(file);
3).如果用缓冲区,则用缓冲区装载流,用缓冲区是为了提高读写性能
BufferReader br = new BufferReader(fr);
4).开始读写操作 String s = null; StringBuffer sb = new StringBuffer();
while((s=br.readLine()!=null) { sb.append(s); } 如果遇到字节流要转换成
字符流,则在缓冲区前加一步 InputStreamReader isr = new
InpuStreamReader(InputStream in); 或者需要编码转换的,则在缓冲区前加一
步 InputStreamReader isr = new InpuStreamReader(InputStream in,Charset cs);
5). 关闭流操作,先开的流后关闭。
实例操作
1)以字节流读写文件,如:音频、图片等
2). 以字符读取文件,以行读写文件
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
每天学习一点,每天进步一点。欢迎关注。