🌺个人主页:Dawn黎明开始
🎀系列专栏:Java
⭐每日一句:你能坚持到什么程度,决定你能达到什么高度📢欢迎大家关注🔍点赞👍收藏⭐️留言📝

文章目录
一.🔐字节缓冲流
📋前言
1.1🔓字节缓冲流
1.1.1🔑构造方法
1.1.2🔑成员方法
1.1.3🔑实例练习
1.2🔓字符缓冲流
1.2.1🔑构造方法
1.2.2🔑成员方法
1.2.3🔑实例练习
二.🔐文件拷贝
2.1🔓字节流文件拷贝
2.1.1🔑基本字节流拷贝
2.1.2🔑缓冲字节流拷贝
2.2🔓字符流文件拷贝
2.2.1🔑基本字符流拷贝
2.2.2🔑缓冲字符流拷贝
三、🔐I/O流与集合综合实例
3.1🔓把ArrayList集合中的字符串数据存储到文本文件
3.1.1🔑分析
3.1.2🔑代码如下
3.2🔓从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合
3.2.1🔑分析
3.2.2🔑代码如下
一.🔐字节缓冲流
📋前言
在代码中使用缓冲流(Buffered Streams)有许多好处,特别是在处理I/O操作时,它们可以显著提高性能和效率。缓冲流在底层通过缓冲区来减少对磁盘或网络的实际读写次数,从而提高了读写性能。相比于直接操作底层输入输出流,缓冲流可以减少频繁的磁盘或网络访问,提升整体的I/O性能。
 
1.1🔓字节缓冲流
1.1.1🔑构造方法
 
 
1.1.2🔑成员方法
 

1.1.3🔑实例练习
🚩(BufferedOutputStream)实例练习
代码如下👇🏻
package BufferedOutputStreamDemo;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedOutputStreamDemo1 {
	public static void main(String[] args) throws IOException {
//		FileOutputStream fos=new FileOutputStream("a.txt",true);
//		BufferedOutputStream bos = new BufferedOutputStream(fos);
		BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("a.txt"));
		bos.write("java".getBytes());
		bos.write("\n中国".getBytes());
		bos.close();
	}
}
🚩(BufferedInputStream)实例练习
代码如下👇🏻
package BufferedInputStreamDemo;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class BufferedInputStreamDemo1 {
	public static void main(String[] args) throws IOException {
		BufferedInputStream bis=new BufferedInputStream(new FileInputStream("a.txt"));
		byte [] bys=new byte[1024];
		int len=0;
		while((len=bis.read(bys))!=-1) {
			String string=new String(bys,0,len);
			System.out.print(string+"\t");
//			System.out.print(new String(bys,0,len));
		}
		bis.close();
	}
}
1.2🔓字符缓冲流

1.2.1🔑构造方法


1.2.2🔑成员方法
继承Writer和Reader类的成员方法
字符缓冲流的特殊方法:
BufferedWriter:
public void newLine():根据系统来决定换行符
BufferedReader:
public String readLine():一次读取一行数据
包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
1.2.3🔑实例练习
代码如下👇🏻
package CopyDemo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFileDemo5 {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedWriter bw=new BufferedWriter(new FileWriter("a.txt"));
		BufferedReader br=new BufferedReader(new FileReader("b.txt"));
		String string=null;
		while((string=br.readLine())!=null) {
			bw.write(string);
			bw.newLine();
			bw.flush();
		}
		bw.close();
		br.close();
	}
}
二.🔐文件拷贝
2.1🔓字节流文件拷贝
2.1.1🔑基本字节流拷贝
🚩(一次读写一个字节)
package CopyDemo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileDemo1 {
		public static void main(String[] args) throws IOException {
			// 封装数据源
			FileInputStream fis = new FileInputStream("a.txt");
			// 封装目的地
			FileOutputStream fos = new FileOutputStream("b.txt");
			//一次读写一个字节
			int b = 0;
			while ((b = fis.read()) != -1) {
				fos.write(b);
			}
			// 释放资源(先关谁都行)
			fos.close();
			fis.close();
		}
	}
代码如下👇🏻
🚩(一次读写一个字节数组)
package CopyDemo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileDemo1 {
		public static void main(String[] args) throws IOException {
			// 封装数据源
			FileInputStream fis = new FileInputStream("a.txt");
			// 封装目的地
			FileOutputStream fos = new FileOutputStream("b.txt");
			//一次读写一个字节
			int b = 0;
			while ((b = fis.read()) != -1) {
				fos.write(b);
			}
			// 释放资源(先关谁都行)
			fos.close();
			fis.close();
		}
	}
2.1.2🔑缓冲字节流拷贝
🚩(一次读写一个字节)
代码如下👇🏻
package CopyDemo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileDemo3 {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("a.txt"));
		BufferedInputStream  bis=new BufferedInputStream(new FileInputStream("b.txt"));
		int b=0;
		while((b=bis.read())!=-1) {
			bos.write(b);
		}
		bos.close();
		bis.close();
	}
}
🚩(一次读写一个字节数组)
代码如下👇🏻
package CopyDemo;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileDemo4 {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("a.txt"));
		BufferedInputStream  bis=new BufferedInputStream(new FileInputStream("b.txt"));
		byte[] bys=new byte[1024];
		int len=0;
		while((len=bis.read(bys))!=-1) {
			bos.write(bys,0,len);
		}
		bos.close();
		bis.close();
	}
}
2.2🔓字符流文件拷贝
2.2.1🔑基本字符流拷贝
2.2.2🔑缓冲字符流拷贝
代码如下👇🏻
package CopyDemo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFileDemo5 {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedWriter bw=new BufferedWriter(new FileWriter("a.txt"));
		BufferedReader br=new BufferedReader(new FileReader("b.txt"));
		String string=null;
		while((string=br.readLine())!=null) {
			bw.write(string);
			bw.newLine();
			bw.flush();
		}
		bw.close();
		br.close();
	}
}
三、🔐I/O流与集合综合实例
3.1🔓把ArrayList集合中的字符串数据存储到文本文件
3.1.1🔑分析
分析:
ArrayList集合里存储的是字符串。
遍历ArrayList集合,把数据获取到。
然后存储到文本文件中。
(文本文件说明使用字符流)
数据源:
ArrayList<String> -- 遍历得到每一个字符串数据
目的地:
a.txt -- FileWriter -- BufferedWriter
3.1.2🔑代码如下
package CopyDemo;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class ArrayListToFileDemo {
	public static void main(String[] args) throws IOException {
		// 封装数据与(创建集合对象)
		ArrayList<String> array = new ArrayList<String>();
		array.add("hello");
		array.add("world");
		array.add("java");
		// 封装目的地
		BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
		// 遍历集合
		for (String s : array) {
			// 写数据
			bw.write(s);
			bw.newLine();
			bw.flush();
		}
		// 释放资源
		bw.close();
	}
}
3.2🔓从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合
3.2.1🔑分析
分析:
通过题目的意思我们可以知道如下的一些内容,
数据源是一个文本文件。
目的地是一个集合。
而且元素是字符串。
数据源:
b.txt -- FileReader -- BufferedReader
目的地:
ArrayList<String>
3.2.2🔑代码如下
package CopyDemo;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class FileToArrayListDemo {
	public static void main(String[] args) throws IOException {
		// 封装数据源
		BufferedReader br = new BufferedReader(new FileReader("b.txt"));
		// 封装目的地(创建集合对象)
		ArrayList<String> array = new ArrayList<String>();
		// 读取数据存储到集合中
		String line = null;
		while ((line = br.readLine()) != null) {
			array.add(line);
		}
		// 释放资源
		br.close();
		// 遍历集合
		for (String s : array) {
			System.out.println(s);
		}
	}
}
🌺建议大家亲自动手操作,学编程,多实践练习是提升编程技能的必经之路。欢迎大家在评论区进行讨论和指正



















