栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础IO流以及缓冲流BufferedReader,BufferedWriter

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础IO流以及缓冲流BufferedReader,BufferedWriter

IO流

IO流
    • @[TOC](IO流)
  • 前言
  • 一、FileWriter
  • 二、FileWriter方法
    • 1.构造方法
    • 2.FileWriter写数据的方法
    • 3.flush()
    • 4.close()
  • 三、FileReader读数据
  • 四、FileReader方法
    • 1.构造方法
    • 2.FileReader读数据的方法
  • 五、缓冲流 BufferedReader,BufferedWriter
  • 六、StringBuilder的使用
  • 总结
前言

IO流用来处理设备之间的数据传输
– 文件复制,上传文件和下载文件
• IO流分类
– 输出流 • FileWriter
– 输入流 • FileReader


一、FileWriter

• 构造方法
– FileWriter(String fileName)
• 成员方法
– void write(String str)
– void flush()
– void close()

二、FileWriter方法 1.构造方法

FileWriter(String fileName);//创建输出流对象,如果有该文件,则清空文件内容,否则创建对应文件。
FileWriter fw = new FileWriter(“c.txt”,true); //不清空文件,表示追加写入,默认是false
绝对路径:以盘符开始的路径(d:a.txt)
FileWriter fw = new FileWriter(“d:a.txt”);
相对路径:相对当前项目而言的,在项目的根目录下(a.txt)
FileWriter fw = new FileWriter(“a.txt”);```

2.FileWriter写数据的方法

write(); 数据没有直接写到文件,其实是写到了内存缓冲区,需要flush()。
1.void write(String str):写一个字符串数据
fw.write(“IO流你好,Hello”);

2.void write(String str,int index,int len):写一个字符串中的一部分数据
在后面追加写入str字符的一部分,从str的下标index开始,len数量的长度
fw.write(“12345”);
fw.write(“12345”,1,3);
内容为:12345234

3.void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。‘a’,97
fw.write(‘a’);
fw.write(97);
内容为:aa

4.void write(char[] chs):写一个字符数组数据
5.void write(char[] chs,int index,int len):写一个字符数组的一部分数据
6.换行
windows:rn ,linux:n , mac:r
fw.write(“rn”);

3.flush()

flush():刷新缓冲区。流对象还可以继续使用。
fw.flush();
即将内存缓冲区中的数据写入a.txt文件。

4.close()

close():先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。一般用于关闭流,释放资源。
fw.close();


三、FileReader读数据

• 构造方法
– FileReader(String fileName)
• 成员方法
– int read()
– int read(char[] cbuf)

四、FileReader方法 1.构造方法

FileReader(String fileName); //fileName为文件名

2.FileReader读数据的方法

1.int read();//读取一个字符,索引到下一位
int ch = fr.read(); //返回的是字符的对应编码
char c = (char)ch; //转换回字符
如果读取完数据后,继续读取会读取到 -1,以此可以做循环打断的条件,如下
while((len=fr.read(chs))!=-1) {
//System.out.println(new String(chs,0,len));
System.out.print(new String(chs,0,len));
}
2.int read(char[] cbuf); //读取cbuf字符数组的长度,放入cbuf里面,包括换行符

char[] chs = new char[5];
int len = fr.read(chs);
System.out.println("len:"+len);	//len:5
//System.out.println(new String(chs));//对应的字符串
System.out.println(new String(chs,0,len));//对应的字符串

一般写法:

//char[] chs = new char[5];
	char[] chs = new char[1024]; //这里可以是1024及其整数倍
	int len;
//1:fr.read(chs)
//2:len=fr.read(chs)
//3:len != -1
	while((len=fr.read(chs))!=-1) {
		System.out.print(new String(chs,0,len));
	}
五、缓冲流 BufferedReader,BufferedWriter

一般都使用缓冲流,这样效率高点。

  • //创建输入缓冲流对象
    BufferedReader br = new BufferedReader(newFileReader(“FileWriterDemo.java”));
  • //创建输出缓冲流对象
    BufferedWriter bw = new BufferedWriter(new FileWriter(“Copy.java”));
    其中有两个比较特殊的方法
  • BufferedWriter void newLine():写一个换行符,这个换行符由系统决定
  • bw.newLine();等效于 bw.write(“rn”);
  • BufferedReader String readLine():一次读取一行数据,但是不读取换行符
    因此,读写数据
    String line;
    while((line=br.readLine())!=null) {
    bw.write(line);
    bw.newLine();
    bw.flush();
    }
六、StringBuilder的使用

//遍历集合,得到每一个学生信息,并把学生信息按照一定的格式写入文本文件
for(int x=0; x
Student s = array.get(x);
//heima001,向问天,30,北京
StringBuilder sb = new StringBuilder(); sb.append(s.getId()).append(“,”).append(s.getName()).append(“,”).append(s.getAge()).append(“,”).append(s.getAddress());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}

总结

基础的IO流常用的方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号