Java 读写文件操作(BufferedReader和BufferedWriter)

Java读文件操作可以用FileReader或BufferedReader,写文件操作用FileWriter或BufferedWriter。在实际操作中,经常使用BufferedReader和BufferedWriter来进行读写操作,所以只介绍BufferedReader和BufferedWriter的简单使用方法。

导包快捷键:Ctrl + shift + o 导包

BufferedWriter和BufferedReade使用方法

BufferedWriter提供了一种新的换行方法
public void newLine()
要追加写入:
将FileWriter fw = new FileWriter(“file03.txt”);
改为FileWriter fw = new FileWriter(“file03.txt”,true);//追加写入

public static void main(String[] args) throws IOException {
		//首先创建一个普通的FileWriter对象,如果file03.txt这个文件没有创建就会自动创建
		FileWriter fw = new FileWriter("file03.txt");
		//将这个普通的FileWriter对象传递给BufferedWriter构造方法即可
		BufferedWriter bw = new BufferedWriter(fw);
		//后面bw的时候和fw没有区别
		bw.write("古力娜扎");
		bw.newLine();//自动根据操作系统选择换行符
		bw.write("马尔扎哈");
		//关闭流
		bw.close();
		}

BufferedReader提供了一个额外的方法,可以读取一整行字符串:
public String readLine(): 读取一整行字符串,返回值当中不包括换行符


public static void main(String[] args) throws IOException {
		//首先创建一个普通的FileReader对象
		FileReader fr = new FileReader("file03.txt");
		//将其包装为BufferedReader
		BufferedReader br = new BufferedReader(fr);
		
		//读取单个字符
		int ch;	//代表单个字符
		while((ch = br.read()) != -1)
		{
			System.out.println((char)ch);
		}

		//读取多个字符,就是从8192的缓冲区中取出多个字符
		//注意(换行符也算字符)
		char[] buf = new char[3];//一次取出3个字符
		int len;	//代表有效个数
		while((len = br.read(buf)) != -1)
		{
			String str = new String(buf, 0 , len);
			System.out.println(str);
		}
	
		//String line = br.readLine();//读取一整行字符串
		String line;//代表一整行字符串
		//按行读取整篇文章的内容
		while((line = br.readLine()) != null)
		{
			System.out.println(line);
		}
		br.close();
		
	}
简单的例子

定义一个集合用于存储多个字符串 ,向其中添加一些字符串,然后将其写进文件中,要求每个字符串独占一行,再将文件中的字符串读到集合中,每一行为一个字符串元素。
步骤:

  1. 定义一个集合,创建一个ArrayList,用来存储多个字符串,也就是泛型是
  2. 向集合中添加字符串就是调用方法:add
  3. 写文件:FileWriter或BufferedWriter方法
  4. 每一个字符串要求占一行,使用newLine方法
  5. 关闭流
  6. 定义一个集合存放读取到的字符串:ArrayList
  7. 读文件 FileReader BufferedReader
  8. 读取一行:newLine
  9. 将读取到的字符串添到集合中:add
  10. 循环读取到null停止
  11. 关闭流
  12. 遍历最后得到的集合
public static void main(String[] args) throws IOException {
		ArrayList<String> list1 = new ArrayList<>();//创建集合
		list1.add("迪丽热巴");
		list1.add("古力娜扎");
		list1.add("马尔扎哈");
		BufferedWriter bw = new BufferedWriter(new FileWriter("t1.txt"));
		//遍历集合
		for (int i = 0; i < list1.size(); i++) {
			String a = list1.get(i);//获取当前字符串
			bw.write(a);
			bw.newLine();//换行
		}
		bw.close();//关闭流
		ArrayList<String> list2 = new ArrayList<>();
		BufferedReader br = new BufferedReader(new FileReader("t1.txt"));
		String line;//代表一整行字符串
		while((line = br.readLine()) != null)
		{
			list2.add(line);//将读取到的字符串添加到集合中
		}
		br.close();
		for (int i = 0; i < list2.size(); i++) {
			System.out.println(list2.get(i));
		}
	}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值