Java获取文件内容IO流
文章目录
- InputStream和Reader
- Scanner
- NIO
- 外传
一般读取文件类的使用字符流即可
InputStream和Reader
InputStream和Reader是Java IO中的两个重要的抽象基类,InputStream是二进制流,Reader是字符流。使用InputStream或者Reader读取文件内容可以帮助我们读取文本文件(非二进制文件)的内容。
下面是一个使用Reader读取文件内容的示例代码:
File file = new File("test.txt");
try {FileReader reader = new FileReader(file);BufferedReader br = new BufferedReader(reader);String str;while ((str = br.readLine()) != null) {System.out.println(str);}br.close();reader.close();
} catch (IOException e) {e.printStackTrace();
}
使用FileReader类读取文件内容,并将FileReader对象传入BufferedReader类中以便于一次读取一行,然后逐行读取并输出文件内容。
Scanner
Scanner是Java内置的一个读取用户输入的类,他也可以用于读取文件内容。使用Scanner读取文件内容需要先创建File对象,并将其传入Scanner构造函数中。
下面是一个使用Scanner读取文件内容的示例代码:
File file = new File("test.txt");
try {Scanner scanner = new Scanner(file);while (scanner.hasNextLine()) {System.out.println(scanner.nextLine());}scanner.close();
} catch (FileNotFoundException e) {e.printStackTrace();
}
使用Scanner类读取文件内容,并通过while循环和hasNextLine()方法逐行读取文件内容并输出到控制台。
NIO
Java NIO(New IO)是从Java 1.4开始引入的一组新IO API。相较于之前的IO API,NIO提供了更高效的IO操作和更多的控制选项。下面是一个使用NIO读取文件内容的示例代码:
File file = new File("test.txt");
try {FileInputStream fileInputStream = new FileInputStream(file);FileChannel fileChannel = fileInputStream.getChannel();ByteBuffer byteBuffer = ByteBuffer.allocate((int) file.length());fileChannel.read(byteBuffer);byteBuffer.flip();byte[] bytes = byteBuffer.array();System.out.println(new String(bytes, 0, bytes.length));fileInputStream.close();
} catch (IOException e) {e.printStackTrace();
}
使用FileInputStream读取文件内容,并调用getChannel()方法获取FileChannel对象,然后调用read()方法将文件内容读入到ByteBuffer缓冲区中。最后通过flip()方法将缓冲区设置为读模式,并通过byteBuffer.array()将缓冲区中的内容转换为字节数组,再通过new String()方法将字节数组转换为字符串并输出到控制台。
外传
😜 原创不易,如若本文能够帮助到您的同学
🎉 支持我:关注我+点赞👍+收藏⭐️
📝 留言:探讨问题,看到立马回复
💬 格言:己所不欲勿施于人 扬帆起航、游历人生、永不言弃!🔥相关文章:
Java获取文件内容IO流
文章目录 InputStream和ReaderScannerNIO外传 一般读取文件类的使用字符流即可 InputStream和Reader InputStream和Reader是Java IO中的两个重要的抽象基类,InputStream是二进制流,Reader是字符流。使用InputStream或者Reader读取文件内容可以帮助我们…...
Java后端开发面试题——集合篇
ArrayList底层的实现原理是什么 底层数据结构 ArrayList底层是用动态的数组实现的 初始容量 ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10 扩容逻辑 ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组 添加逻…...
如何允许远程访问MySQL
许多网站和应用程序一开始都将web服务器和数据库后端托管在同一台机器上。不过,随着时间的推移,这样的设置可能会变得繁琐和难以扩展。一种常见的解决方案是通过设置远程数据库来分离这些功能,允许服务器和数据库在各自的机器上按自己的速度增…...
001图机器学习与图神经网络简介
文章目录 一. 无处不在的图二. 如何对图数据做信息挖掘三. 图神经网络四. 图机器学习常用的编程工具五. 图的可视化工具六. 常见的图数据库七. 图机器学习的应用举例八. 结束语 一. 无处不在的图 一切具有关联关系的数据都可以用图来表示。比如:交通网、知识图谱、…...
万级数据优化EasyExcel+mybatis流式查询导出封装
文章目录 前言.万级数据优化一. 直接上流式查询封装工具代码二. 传统分页导出查询三. 流式查询概念游标查询 前言.万级数据优化 我们不妨先给大家讲一个概念,利用此概念我们正好给大家介绍一个数据库优化的小技巧: 需求如下:将一个地市表的数…...
Unity——脚本序列化
在介绍序列化之前,我们先来了解一下为什么要对数据进行序列化 数据序列化有以下几个主要的应用场景和目的: 1. 持久化存储:序列化可以将对象或数据结构转换为字节序列,使得其可以被存储在磁盘上或数据库中。通过序列化ÿ…...
es(Elasticsearch)介绍
学习es可以参考mysql(相比mysql而言,es所需的cpu、内存更多) 什么是Elasticsearch Elasticsearch简称es,是由Elastic和search组成。Elastic的意思是有弹性的,search的意思是搜索。 弹性:es是一个天生支持分…...
C++中使用 do…while 循环
C中使用 do…while 循环 在有些情况(如程序清单 6.8 所示的情况)下,您需要将代码放在循环中,并确保它们至少执行一次。此时 do…while 循环可派上用场。 do…while 循环的语法如下: do {StatementBlock; // executed…...
开源vue动态表单组件
一、项目简介 vueelement的动态表单组件,拖拽组件到面板即可实现一个表单 二、实现功能 支持拖拽 支持输入框 支持文本框 支持数字输入框 支持下拉选择器 支持多选框 支持日期控件 支持开关 支持动态表格 支持上传图片 支持上传文件 支持标签 支持ht…...
怎么从0到1创建一个PHP框架-1?
写在前面 本人开发的框架在2021年年初开发完成,后面没有再做过任何维护和修改。是仅供大家参考交流的学习项目,请勿使用在生产环境,也勿用作商业用途。 框架地址: https://github.com/yijiebaiyi/fast_framework 整体思路 开发…...
Qt无边框青绿色主题
收费产品,学生党、闹眼子党勿扰 收费金额:500元 1 概述 最近因项目需要,写了一个炫酷的青绿色、无边框界面,和3DSMax的界面有点类似。 2 截图 首先看看3DSMax的界面 不知道大家看出来没,这个ui其实很简单ÿ…...
200 套基于Java开发的Java毕业设计实战项目(含源码+说明文档)
文章目录 简介前言第一部分第二部分部分截图源码咨询 简介 博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 前言 对于java方向的毕业设计题目选题…...
Ansible学习笔记7
user模块: user模块用于管理用户账户和用户属性。 如果是windows要换一个win_user模块。 创建用户:present: [rootlocalhost ~]# ansible group1 -m user -a "nameaaa statepresent" 192.168.17.106 | CHANGED > {"ansi…...
Python3 对列表、字典以及二者的嵌套数据(JSON)格式排序
在 Python 中,列表和字典都是基础数据类型,这两种数据类型会通过相互嵌套和多个层级形成复杂的数据类型,类似 JSON 数据格式,对列表和字典排序其实可以类比是对 JSON 排序。 列表排序 列表可以使用 sorted() 函数排序࿱…...
如何在B站进行学习直播
诸神缄默不语-个人CSDN博文目录 会根据我使用的情况进行持续更新 文章目录 1. 电脑 - 哔哩哔哩直播姬1. 软件的基础使用2. 素材1. 摄像头2. 窗口捕捉3. 游戏进程图片文字浏览器多媒体 3. H5插件其他注意事项 2. 手机直播3. iPad直播 1. 电脑 - 哔哩哔哩直播姬 1. 软件的基础使…...
老卫带你学---windows上安装minikube
老卫带你学—windows上安装minikube 1. 下载minikube https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe2.安装好后,将对应的目录添加env path 3. minikube start --kubernetes-versionv1.23.8 --image-mirror-countrycn...
Neo-reGeorg隧道搭建
目录 Neo-regeorg前言 环境搭建 具体使用 kail安装Neo-reGeorg kail内生成webshell并设置密码 kail与win10连接 windows server内打开服务 kail虚拟机访问windows server以及所在的内网 Neo-regeorg前言 regeorg为reDuh的升级版,主要功能就是把内网服务器的…...
Elasticsearch 7.6 - API高阶操作篇
ES 7.6 - API高阶操作篇 分片和副本索引别名添加别名查询所有别名删除别名使用别名代替索引操作代替插入代替查询 场景实操 滚动索引索引模板创建索引模板查看模板删除模板 场景实操一把索引的生命周期数据迁移APIGEO(地理)API索引准备矩形查询圆形查询多边形查询 自定义分词器…...
软件第三方验收测评介绍
软件第三方验收测试 软件项目验收测试介绍: 软件项目验收测试是部署软件之前的最后一个测试操作,是对系统进行全面的测试,以验证其是否符合合同要求,出具第三方测试报告,为系统验收提供依据。 验收测试的目的是&…...
HarmonyOS—使用Web组件加载页面
页面加载是 Web 组件的基本功能。根据页面加载数据来源可以分为三种常用场景,包括加载网络页面、加载本地页面、加载 HTML 格式的富文本数据。 页面加载过程中,若涉及网络资源获取,需要配置ohos.permission.INTERNET网络访问权限。 加载网络…...
【Matlab】MATLAB教程:拟合效果评估(案例:计算R²、残差;应用:量化评估拟合质量)
MATLAB教程:拟合效果评估(案例:计算R、残差;应用:量化评估拟合质量) 在实验数据分析、工程建模、科研拟合等场景中,很多人完成曲线拟合后,仅凭肉眼观察曲线是否“贴近数据”就判断拟合效果好坏,这种方式极具主观性:看似平滑的曲线,可能存在较大隐性误差;看似贴合局…...
DB2数据迁移实战:除了EXPORT/LOAD,这几种备份还原方法你试过吗?
DB2数据迁移实战:超越基础工具的高效策略全景 当测试环境的DB2数据库需要整体搬迁到新服务器时,大多数DBA的第一反应是使用EXPORT/LOAD这对经典组合。但真实场景中,数据迁移远不止简单的导出导入——表结构依赖、CLOB字段处理、编码转换、存储…...
解锁图像标注效率:LabelImg亮度调节功能提升标注准确性全指南
解锁图像标注效率:LabelImg亮度调节功能提升标注准确性全指南 【免费下载链接】labelImg LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check…...
【雷达成像】主动式毫米波安检成像【含Matlab源码 15238期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...
Python实战:5分钟搞定睿尔曼机械臂与AGV底盘的Socket通信(附完整代码)
Python实战:5分钟搞定睿尔曼机械臂与AGV底盘的Socket通信(附完整代码) 在工业自动化领域,复合机器人正逐渐成为提升生产效率的关键设备。这类机器人通常由AGV(自动导引运输车)底盘和机械臂组成,…...
开源字体破局者:思源宋体TTF的免费商用解决方案
开源字体破局者:思源宋体TTF的免费商用解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字设计领域,寻找兼具专业品质与商业授权的中文字体一直是设…...
如何用RecastNavigation构建高效AI导航系统:5个实战技巧揭秘
如何用RecastNavigation构建高效AI导航系统:5个实战技巧揭秘 【免费下载链接】recastnavigation Navigation-mesh Toolset for Games 项目地址: https://gitcode.com/gh_mirrors/re/recastnavigation 你是否曾为游戏中的AI角色设计路径规划而头疼?…...
思源宋体TTF:免费商用中文字体的终极解决方案
思源宋体TTF:免费商用中文字体的终极解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为寻找高质量且免费商用的中文字体而烦恼吗?思源宋体TTF格式为…...
用Python和MATLAB/Simulink复现车辆二自由度模型:从理论公式到仿真验证(附代码)
从理论到实践:Python与MATLAB/Simulink实现车辆二自由度动力学仿真 在自动驾驶和车辆工程领域,理解车辆动力学模型是开发先进控制算法的基础。二自由度模型作为最简单的车辆动力学模型之一,能够有效描述车辆的侧向和横摆运动特性。本文将带您…...
如何快速掌握Fast-F1:Python赛车数据分析实战指南
如何快速掌握Fast-F1:Python赛车数据分析实战指南 【免费下载链接】Fast-F1 FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry 项目地址: https://gitcode.com/GitHub_Trending/fa/Fast-F1 …...
