🌺个人主页:Dawn黎明开始
🎀系列专栏:Java
⭐每日一句:你能坚持到什么程度,决定你能达到什么高度📢欢迎大家关注🔍点赞👍收藏⭐️留言📝
文章目录
3.1🔓把ArrayList集合中的字符串数据存储到文本文件
3.2🔓从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合
在代码中使用缓冲流(Buffered Streams)有许多好处,特别是在处理I/O操作时,它们可以显著提高性能和效率。缓冲流在底层通过缓冲区来减少对磁盘或网络的实际读写次数,从而提高了读写性能。相比于直接操作底层输入输出流,缓冲流可以减少频繁的磁盘或网络访问,提升整体的I/O性能。
🚩(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();
- }
- }
继承Writer和Reader类的成员方法
字符缓冲流的特殊方法:
BufferedWriter:
public void newLine():根据系统来决定换行符
BufferedReader:
public String readLine():一次读取一行数据
包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
代码如下👇🏻
- 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();
- }
- }
🚩(一次读写一个字节)
- 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();
- }
- }
🚩(一次读写一个字节)
代码如下👇🏻
-
- 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();
- }
- }
-
-
代码如下👇🏻
- 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();
- }
- }
分析:
ArrayList集合里存储的是字符串。
遍历ArrayList集合,把数据获取到。
然后存储到文本文件中。
(文本文件说明使用字符流)
数据源:
ArrayList
-- 遍历得到每一个字符串数据 目的地:
a.txt -- FileWriter -- BufferedWriter
- 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
array = new ArrayList(); - 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();
- }
- }
分析:
通过题目的意思我们可以知道如下的一些内容,
数据源是一个文本文件。
目的地是一个集合。
而且元素是字符串。
数据源:
b.txt -- FileReader -- BufferedReader
目的地:
ArrayList
- 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
array = new ArrayList(); - // 读取数据存储到集合中
- String line = null;
- while ((line = br.readLine()) != null) {
- array.add(line);
- }
- // 释放资源
- br.close();
- // 遍历集合
- for (String s : array) {
- System.out.println(s);
- }
- }
- }
🌺建议大家亲自动手操作,学编程,多实践练习是提升编程技能的必经之路。欢迎大家在评论区进行讨论和指正