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

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

(0)

相关推荐

  • Java如何基于IO流实现同一文件读写操作

    1.注意事项 众所周知,对一个文件进行读写操作时,我们需要创建对应的输入流和输出流 但需要注意的是,读写操作不能同时进行(边读边写),即不能同时打开输入流和输出流,直白一点说就是不能同时对同一个文件的输入流和输出流进行赋值,否则影响文件进行正常的读写操作.如果是不同的文件,则可以边读边写. 2.那么我们怎么对同一个文件进行读写操作呢? 不能边读边写,但是可以先读后写,先写后读. a.先读后写 打开输入流,对文件进行读操作,操作完成之后把输入流关掉(注意一定要关掉).然后再打开输出流,对文件进行写

  • java IO流文件的读写具体实例

    引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能找到,但自己总感觉不是很踏实,所以今天就抽空看了看java IO流的一些操作,感觉还是很有收获的,顺便总结些资料,方便以后进一步的学习... IO流的分类:1.根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader  低端流:所有的外界设备中的流都是低端流

  • 详解java IO流之缓冲流的使用

    java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

  • java使用缓冲流复制文件的方法

    本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加快节点流对文件操作的速度 2.BufferedInputStream:输入缓冲流 3.BufferedOutputStream:输出缓冲流 4.在正常的Java开发中都使用缓冲流来处理文件,因为这样可以提高文件处理的效率 5.这里设计程序:使用缓冲流复制一个较大的视频文件 -------------

  • java 实现字节流和字节缓冲流读写文件时间对比

    我就废话不多说了,大家还是直接看代码吧~ package cn.itcast.copy; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* * 文件复制方式,字节流,一共

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

    利用缓冲流读写文件 从控制台读取数据写入文件 读取文件输出到控制台 public class BookTest { public static void main(String[] args) { //从控制台输入信息并写入文件中 BufferedReader ir=new BufferedReader(new InputStreamReader(System.in)); //包装成字符输入缓冲流 BufferedWriter bw=null; try { bw=new BufferedWrit

  • Java使用I/O流读取文件内容的方法详解

    本文实例讲述了Java使用I/O流读取文件内容的方法.分享给大家供大家参考,具体如下: 要利用I/O流读取文件内容,首先要掌握InputStream的体系结构. 这个体系中FileInputStream和BufferedInputStream是一定要掌握的,因为使用的频率比较高. InputStream的方法:InputStream位于java.io包下 OutputStream的方法: 读取文件(代码): package com.jredu.oopch11; import java.io.Fi

  • Java编程利用socket多线程访问服务器文件代码示例

    这篇文章将向大家展示Java编程利用socket多线程访问服务器文件代码示例,如果您想先了解Java多线程socket编程的基础知识,可以看下这篇文章:Java多线程编程实现socket通信示例代码. 接下来进入正文,我们看看利用socket多线程访问服务器代码: ServerMain.java package com.ysk.webServer; import java.io.File; import java.io.IOException; import java.net.ServerSoc

  • java中的IO流

    目录 java中的IO流 1.普通字节流 2.字节缓冲流 3.转换流 4.常用的IO类FileReader和BufferedReader 5.总结 java中的IO流 前言: 在java中IO类很庞大,初学的时候觉得傻傻分不清楚.其实java流归根结底的原理是普通字节流,字节缓冲流,转换流.最基础的是普通字节流,即从硬盘读取字节写入到内存中,但在实际使用中又发现一些特殊的需求,所以java语言的设计者这引入了字节缓冲流和转换流.所有的java IO类对IO的处理都是基于这三种流中的一种或多种:在

  • 关于Java中的IO流总结(推荐)

    1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和BufferedOutputStream.以及对应的FileOutputWriter,FileInputReader,BufferedInputReader,BufferedOutputWriter. 3. 转换流InputStreamReader和OutputStreamWriter 一:流的继承关系 字节流 字符流 字符流和字节

  • 举例讲解Java中的Stream流概念

    1.基本的输入流和输出流 流是 Java 中最重要的基本概念之一.文件读写.网络收发.进程通信,几乎所有需要输入输出的地方,都要用到流. 流是做什么用的呢?就是做输入输出用的.为什么输入输出要用"流"这种方式呢?因为程序输入输出的基本单位是字节,输入就是获取一串字节,输出就是发送一串字节.但是很多情况下,程序不可能接收所有的字节之后再进行处理,而是接收一点处理一点.比方你下载魔兽世界,不可能全部下载到内存里再保存到硬盘上,而是下载一点就保存一点.这时,流这种方式就非常适合. 在 Jav

  • java高效文件流读写操作详解

    导语 防止自己以后忘记,记录一些文件流的性能对比. 平常经常会操作到文件读写,java当中提供了许多操作文件的类,一般来说,文件操作也叫流操作,可以按照以下方式分类: 按照功能分类,字节流和字符流. 按照节点流和过滤流,节点流直接操作文件,过滤流包装了节点流和过滤流.如FileInputStream和BufferedFileInputStream就是分别是节点流和过滤流. 文件流比较 下面重点比较我们经常用的几个流 (1) DataInputStream+FileInputStream (2)

随机推荐