Java 如何利用缓冲流读写文件

 更新时间:2021年07月21日 14:52:57   作者:进击的Pikachu  
这篇文章主要介绍了Java 如何利用缓冲流读写文件的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

利用缓冲流读写文件

从控制台读取数据写入文件

读取文件输出到控制台

public class BookTest {
	public static void main(String[] args) {
		//从控制台输入信息并写入文件中
		BufferedReader ir=new BufferedReader(new InputStreamReader(System.in));   //包装成字符输入缓冲流
		BufferedWriter bw=null;
		try {
			bw=new BufferedWriter(new FileWriter("D:\\Test.txt"));
			for(String str=null;(str=ir.readLine())!=null;) {         
                //输入 e 实现写文件安全退出
				if(str.equalsIgnoreCase("e")) {
					System.out.println("安全退出"); 
					break;
				}
				bw.write(str);             //写入一行
				bw.newLine();              //写入行分隔符
				bw.flush();                //刷新缓冲流
			}
		}catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace();
		}finally {
			if(ir!=null) {
				try {
					ir.close();
				}catch(IOException e) {
					e.printStackTrace();
				}
			}
			if(bw!=null) {
				try {
					bw.close();
				}catch(IOException e) {
					e.printStackTrace();
				}
			}
		}
		Book[] book=new Book[20];             //对象数组
		int k=0;
		BufferedReader br1=null;              
		try {
			br1=new BufferedReader(new FileReader("D:\\Test.txt"));      //利用缓冲流读取文件
			String str=null;
			while((str=br1.readLine())!=null) {
				System.out.println(str);      //输出一行
				//String[] s=str.split(",");
				//System.out.println(s[0]);
				//book[k++]=new Book(s[0],s[1],s[2],s[3],Integer.parseInt(s[4]));
			}
		}catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace();
		}finally {
			if(br1!=null) {
				try {
					br1.close();
				}catch(IOException e) {
					e.printStackTrace();
				}
			}
		}
     }
}

运行效果:

值得注意的是:

该程序的写文件部分在程序的第一次运行中运行即可,以后运行程序的时候要将此部分注释掉,否则会一直先要从控制台读取数据写到文件中,除非需要修改文件中的内容。

文件流和缓冲流

按照处理数据的单位的不同:字节流,字符流(处理的文本文件)

按照角色不同:节点流(直接作用于文件的),处理流

文件流(节点流):

FileInputStream
FileOutputStream
FileReader
FileWriter

缓冲流:有刷新

BufferedInputStream
BufferedOutputStream
BufferedReader  (ReadLine)(newLine)
BufferedWriter

输入流 file.read(new byte[5]);

把文件读到字节数组里

BufferedInputStream
int (len = file.read(new byte[5]))!=-1
FileReader
 (file.readLine(str)!=null

转化流:InputStreamReaderOutputStreamWriter

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java开发环境配置JDK超详细整理(适合新手入门)

    Java开发环境配置JDK超详细整理(适合新手入门)

    这篇文章主要给大家介绍了关于Java开发环境配置JDK超详细整理的相关资料,非常适合新手入门,JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序,需要的朋友可以参考下
    2023-11-11
  • MybatisPlus3.3.0没有MybatisPlusInterceptor类问题的解决方法

    MybatisPlus3.3.0没有MybatisPlusInterceptor类问题的解决方法

    项目使用的是mybatis-plus-extension3.3.0依赖,然后在我使用分页插件的时候,发现无法导入MybatisPlusInterceptor类所以本文给大家介绍了MybatisPlus3.3.0没有MybatisPlusInterceptor类问题的解决方法,需要的朋友可以参考下
    2023-12-12
  • IntelliJ IDEA中Scala、sbt、maven配置教程

    IntelliJ IDEA中Scala、sbt、maven配置教程

    这篇文章主要介绍了IntelliJ IDEA中Scala、sbt、maven配置教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • springboot之如何获取项目目录路径

    springboot之如何获取项目目录路径

    这篇文章主要介绍了springboot之如何获取项目目录路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Java中嵌入式MySQL的使用方法

    Java中嵌入式MySQL的使用方法

    这篇文章主要为大家详细介绍了Java中嵌入式MySQL的使用方法,Java中如何使用嵌入MySQL,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • SpringBoot中配置多数据源的方法详解

    SpringBoot中配置多数据源的方法详解

    这篇文章主要为大家详细介绍了SpringBoot中配置多数据源的方法的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • 浅谈spring中用到的设计模式及应用场景

    浅谈spring中用到的设计模式及应用场景

    下面小编就为大家带来一篇浅谈spring中用到的设计模式及应用场景。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Spring Boot Actuator 漏洞利用小结

    Spring Boot Actuator 漏洞利用小结

    spring对应两个版本,分别是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也会有所不同,这篇文章主要介绍了Spring Boot Actuator 漏洞利用小结,需要的朋友可以参考下
    2023-11-11
  • SpringBoot+Vue.js实现前后端分离的文件上传功能

    SpringBoot+Vue.js实现前后端分离的文件上传功能

    这篇文章主要介绍了SpringBoot+Vue.js实现前后端分离的文件上传功能,需要的朋友可以参考下
    2018-06-06
  • Java 并发编程之线程挂起、恢复与终止

    Java 并发编程之线程挂起、恢复与终止

    这篇文章主要介绍了Java 并发编程之线程挂起、恢复与终止的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论