java 读取文件在控制台打印、将内容写入到文件

在这里插入图片描述

文章目录

  • 1. 读取txt文本文件内容在控制台打印(5种方式)
    • 1.1 字节流方式
      • 1.1.1 FileInputStream 文件字节输入流
      • 1.1.2 BufferedInputStream 缓冲输入字节流
    • 1.2 字符流方式
      • 1.2.1 InputStreamReader 转换输入字符流
      • 1.2.2 FileReader 便捷字符输入流
      • 1.2.3 BufferedReader 缓冲字符输入流
  • 2. 向txt文件内写入内容(5种方式)
    • 2.1 字节流方式
      • 2.1.1 FileOutputStream 文件字节输出流
      • 2.1.2 BufferedOutputStream 缓冲输出字节流
    • 2.2 字符流方式
      • 2.2.1 OutputStreamWriter 转换输出字符流
      • 2.2.2 FileWriter 便捷字符输出流
      • 2.2.3 BufferedWriter 缓冲字符输入流
  • 3. 注意事项

1. 读取txt文本文件内容在控制台打印(5种方式)

1.1 字节流方式

1.1.1 FileInputStream 文件字节输入流

/*** 字节输入流* 读取 txt 文件的内容并在控制台打印*/public static void tFileInputStream() throws Exception{FileInputStream fileInputStream = new FileInputStream("src/a.txt");byte[] bytes = new byte[1024*5];int len = 0;StringBuilder sb = new StringBuilder();while ((len = fileInputStream.read(bytes))!=-1){sb.append(new String(bytes,0,len));}fileInputStream.close();System.out.println(sb.toString());}

1.1.2 BufferedInputStream 缓冲输入字节流

/*** 字节输入缓冲流* 读取 txt 文件的内容并在控制台打印*/public static void tBufferedInputStream() throws Exception{BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("src/a.txt"));byte[] bytes = new byte[1024*5];int len = 0;StringBuilder sb = new StringBuilder();while ((len = inputStream.read(bytes))!=-1){sb.append(new String(bytes,0,len));}inputStream.close();System.out.println(sb);}

1.2 字符流方式

1.2.1 InputStreamReader 转换输入字符流

/*** 字符输入流* 读取txt文件内容 并在控制台打印*/public static void tInputStreamRead() throws Exception{InputStreamReader streamReader = new InputStreamReader(new FileInputStream("src/b.txt"));char[] chars = new char[10];int len = 0;StringBuilder sb = new StringBuilder();while ((len = streamReader.read(chars))!=-1){sb.append(chars,0,len);}streamReader.close();System.out.println(sb.toString());}

1.2.2 FileReader 便捷字符输入流

 /*** 便捷字符输入流* 读取txt文件内容 并在控制台打印*/public static void tFilRead() throws Exception {FileReader fileReader = new FileReader("src/a.txt");char[] chars = new char[1024];int len = 0;StringBuilder sb = new StringBuilder();while ((len = fileReader.read(chars))!=-1){sb.append(chars,0,len);}System.out.println(sb.toString());}

1.2.3 BufferedReader 缓冲字符输入流

/*** 字符缓冲输入流* 读取txt文件内容 并在控制台打印*/public static void tBufferedRead() throws Exception{BufferedReader bufferedReader = new BufferedReader(new FileReader("src/a.txt"));char[] chars = new char[1024];int len = 0;StringBuilder sb = new StringBuilder();while ((len = bufferedReader.read(chars))!=-1){sb.append(chars,0,len);}bufferedReader.close();System.out.println(sb.toString());}

2. 向txt文件内写入内容(5种方式)

2.1 字节流方式

2.1.1 FileOutputStream 文件字节输出流

/*** 字节输出流* 将字符串写入到 文件内*/public static void tFileOutPutStream() throws Exception{FileOutputStream outputStream = new FileOutputStream("src/b.txt");String str = "豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越";outputStream.write(str.getBytes());outputStream.close();System.out.println("内容写入成功!");}

2.1.2 BufferedOutputStream 缓冲输出字节流

 /*** 字节输出缓冲流* 将字符串写入到 文件内*/public static void tBuffrtedOutPutStream() throws Exception{BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream("src/b.txt"));String str = "龙光射牛斗之墟;人杰地灵,徐孺下陈蕃之榻。雄州雾列,俊采星驰。台隍枕夷夏之交,宾主尽东南之美。都督阎公之雅望,棨戟遥临;宇文新州之懿范,襜帷暂驻。十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,躬逢胜饯。\n" +"时维九月,序属三秋。潦水尽而寒潭清,烟光凝而暮山紫。";outputStream.write(str.getBytes());outputStream.close();System.out.println("内容写入成功!");}

2.2 字符流方式

2.2.1 OutputStreamWriter 转换输出字符流

/*** 字符输出流* 将字符串写入到 文件内*/public static void tBufferedWrite() throws Exception{OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("src/b.txt"));String str = "潦水尽而寒潭清,烟光凝而暮山紫。俨骖騑于上路,访风景于崇阿;临帝子之长洲,得天人之旧馆。";outputStreamWriter.write(str);/*** 使用字符流写内容到文件,需要调用 close() 方法 关闭流 或者 调用flush() 方法;* 转:在字符流的操作中,所有的字符都是在内存中形成的,在输出前会将所有的内容暂时保存在内存之中,所以使用了缓冲区暂存数据。* 如果想在不关闭时也可以将字符流的内容全部输出,则可以使用Writer类中的flush()方法完成*/outputStreamWriter.close();System.out.println("内容写入成功!");}

2.2.2 FileWriter 便捷字符输出流

/*** 便捷字符输出流* 将字符串写入到 文件内*/public static void tFileWrite() throws Exception{FileWriter fileWriter = new FileWriter("src/b.txt");String str = "层峦耸翠,上出重霄;飞阁流丹,下临无地。鹤汀凫渚,穷岛屿之萦回;桂殿兰宫,即冈峦之体势。";fileWriter.write(str);fileWriter.close();System.out.println("内容写入成功!");}

2.2.3 BufferedWriter 缓冲字符输入流

/*** 字符缓冲输入流* 将字符串写入到 文件内*/public static void tBufferWrite() throws Exception{BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("src/b.txt"));String str = "云销雨霁,彩彻区明。落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨;雁阵惊寒,声断衡阳之浦。";bufferedWriter.write(str);bufferedWriter.close();System.out.println("内容写入成功!");}

3. 注意事项

  • 使用字节流读取文件在控制台打印时,出现了部分乱码?
    字节流读取的单位是字节,一个汉字对应的是3个字节。例如:文件内有5个中文汉字(共15字节)。如果读取的时候byte[] 数组大小定义为 10,那么while 循环内将需要读取2遍才能读完,第一次将读取 3个半的字,则那半个字将会出现乱码情况;

  • 使用字节缓冲流输出流、或是字符流输出流写入文件没报错也不成功?
    字节缓冲输出流中,在输出前将会把数据内容暂放在缓存区(可以理解为一块特殊的内存)中,并没有写入到文件内。这个时候需要使用close()方法或是flush()方法将缓冲区中的内容写入文件内;而字符流内部设有缓冲区,原理一样。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69734.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【潜渊症 | 万字解析】模组制作研究讲义

潜渊症mod制作研究讲义 说明 作者:晓涵 Steam昵称:Xiao[CN] ——荧惑守心研究院 最后编辑:2023.04.17 本文共计 17,000 字/词 (含代码),预计阅读时长 1min ~ Infinity 如有建议&错误反馈,或需要mod制作的技术…

Shell编程(三)grep sed awk文本处理三剑客

上一章: Shell编程(二)_做测试的喵酱的博客-CSDN博客 一、ps命令 指令: ps作用: 主要是查看服务器的进程信息选项含义: -e:等价于 ‘-A’ ,表示列出全部的进程 -f:显示全部的列&am…

java 多线程基础 万字详解(通俗易懂)

目录 一、前言 二、定义 1.进程 : 2.线程 : 3.单线程与多线程 : 4.并发与并行 : 三、线程的创建 1.创建线程的两种基本方式 : 1 继承Thread类,并重写run方法 1.5 多线程的执行机制(重要) 2 实现Runnable接口,并重写run方法 2. 两种创建线程方式…

超算对我们的生活有着什么样的影响?

为什么各国都去抢超算的世界第一?因为它对人们的生活有着很大的影响。 一、核武器的成功研发离不开超算 对美国而言,超算的作用首先在研制核武器领域。加利福尼亚的利弗莫尔国家实验室、新墨西哥州的洛斯阿拉莫斯国家实验室、圣地亚国家实验室、橡树岭…

简单博客系统静态页面(html+css+JavaScript+第三方库Jquery mdn)

目录 一、基本构造 1、博客列表页 2、博客详情页 3、登录页 4、博客编辑页 二、文件目录 1、css 文件夹 blog_detail.css blog_edit.css blog_list.css common.css login.css 2、html 文件 blogDetail.html blogEdit.html blogList.html Login.html 3、image…

【创作赢红包】Python第3章 流程控制

这里写目录标题 【本章导读】真值测试比较运算成员运算for循环while循环项目实训1项目实训2项目实训3项目实训4:项目实训5:项目实训6:项目实训7:项目实训8项目实训9:项目实训10:项目实训11:项目实训12&…

06【Filter】

文章目录 06【Filter】一、过滤器简介1.1 Filter概述1.2 Filter的使用1.2.1 Filter快速体验1.2.2 XML配置Filter1.2.3 Filter的拦截规则 1.3 Filter的生命周期1.3.1 Filter生命周期介绍1.3.2 Filter生命周期相关方法1.3.3 FilterConfig类 1.4 Filter的拦截方式1.4.1 REQUEST1.4…

年度征文|一个业余电脑玩家的30年(1992-2022)

《论语为政》:“五十而知天命”。岁月真的是一把刀,一晃已过不惑之年,还有几天就要进入知非之年。不论知非还是知天命,反正是花甲将至而从心所欲了。年少时因某种不合机缘,错与IT界擦肩而过,每每想起就扼腕…

勾股定理·圓周率·無窮級數·微積分

勾股定理 勾股定理 圓 圓形的概念的形成,是人類認知歷史上的一大里程碑。 圓周率 定义1 一个圆形的周长与直径之比: 定义2 以圆形半径为边长作一正方形,然後把圆形面积和此正方形面积比。 圆与外接正方形 定义3 满足 的最小正实数。 ysin(x) …

谈古论津丨西沽公园

天津为退海之地,意思就是海面下降或者陆地上升形成的地理环境,现在塘沽、汉沽还有盐场,就在一定程度上说明了这一点。因此天津地势低洼,沽坑相连,素有七十二沽之说,所以天津的地名带“沽”字的也特别多&…

什么是事件响应策略?您知道如何起草一份吗?

如今,网络犯罪已在世界范围内变得越来越普遍,促使组织提前制定竞争策略来处理网络犯罪事件,减少业务停机风险并降低损失成本。因此,制定适当的事件响应策略或计划以应对网络攻击的影响并确保业务的平稳运行和业务数据的安全至关重…

美国空军停止使用【软盘】管理【核武器库】

平心而论,05后出生的,估计已经不知道软盘这个东西是什么了。 因此,为了缅怀历史,黑鸟还是想大概介绍一下,这个在当年被我拿来垫麻将桌的神器。 软盘,英文名Floppy Disk,是个人计算机&#xff08…

细菌拮抗作用在细菌生活中的核心作用

大多数细菌可能存在或至少有一部分时间处于单细胞状态。在这种单细胞状态下,细菌将更容易受到一系列威胁,包括其周围环境的物理或化学性质的简单波动,更容易受到更直接的生物威胁,如抗生素、噬菌体、拮抗细菌,甚至是捕…

中百信玄武库Kubernetes实践与探索

“Kubernetes其在自动化部署、扩展性、以及管理容器化的应用中已经体现出独特的优势,同样在企业中应用落地已经成为一种共识。中百信玄武库作为ToB服务产品,玄武库研究院在玄武库平台使用Kubernetes做了哪些实践和探索呢?我们今天和大家分享一…

微信论坛交流小程序系统毕业设计毕设(6)开题答辩PPT

整个项目包含了:开题报告 开题报告PPT 任务书 中期报告 论文模板 答辩PPT等 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术,主要包括了前端小程序开发的MINA框架;后台开发java的框架springboot、模板引擎 thymeleaf…

22、基于51单片机电压电流功率系统设计(程序+原理图+PCB图+Proteus仿真+答辩技巧+开题报告+参考论文+元器件清单等)

一、硬件方案 硬件组成:51系列单片机ADC0832按键LCD1602液晶LED设计而成。 二、设计功能 本设计基于单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。 1、本设计基于51单片机实现电流、电压测量和功率的计算,并通过按键设置报警…

有哪些可以投稿软件工程/系统软件/程序设计语言类外文期刊、会议?

如果你是第一次投外文期刊、会议,往往不知道应该投到哪些期刊杂志或会议上。不要着急,有下面几种投稿策略可以采用。 第一种策略,根据你的论文质量来选择期刊、会议。也就是说,如果对论文质量十分自信,那就选择顶级的期…

大学毕业设计这样做可以吗

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

springboot论坛交流小程序毕业设计毕设作品开题报告开题答辩PPT

springboot论坛交流小程序毕业设计毕设作品开题报告开题答辩PPT 【小程序用户功能】 用户注册登录:注册普通账号,然后使用注册的账号登录登录 微信授权登录:直接使用微信作为账号,授权后登录 资讯列表:用户可以任意浏…

用这个工具,发朋友圈都可以自动了

今天推荐是一个比较骚气的工具,自动发朋友圈(不用root手机),对于一天发10多条,甚至20条朋友圈的朋友,每次编辑比较麻烦。我之前也写过抢红包工具,当时上架应用市场时,又恰逢过年,那下载量&#…