文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

利用缓冲流读写文件

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

读取文件输出到控制台


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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯