🌺个人主页: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 stubBufferedWriter 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 stubBufferedOutputStream 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 stubBufferedOutputStream 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 stubBufferedWriter 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);}}
}
🌺建议大家亲自动手操作,学编程,多实践练习是提升编程技能的必经之路。欢迎大家在评论区进行讨论和指正