读取文件和写入文件操作

        在java中会涉及到对文件进行读取和写入操作,以下将介绍如何用java对文件进行读取和写入

读取

        通过Readr读取字符流文件中的数据

读取字符流文件中的数据表示以字符为单位进行读取

package 文件操作;import java.io.*;/*** Created with IntelliJ IDEA.* Description:* User: wuyulin* Date: 2023-08-06* Time: 15:36*/
//用Readr读取字符流文件中的数据
public class Demo1 {public static void main(String[] args) throws IOException {//由于Reader类是虚拟类所以我们不能直接实例化Reader类的对象,只能实例化继承于Reader类的子类//由于实例化FileReader类型的对象后就会自动打开对应的文件//而考虑到很可能会由于忘记调用close方法导致使用完文件后没有关闭文件导致严重后果//所以采用try(){}的结构,在()中实例化FileReader类型的对象,在执行完{}中的内容后便会自动关闭打开的文件//读取字符流文件中数据的多种方式try(Reader reader=new FileReader("./text.txt")){//一//Read是读取字符流的数据,调用read()可以读取一个字符的数据,读取失败返回-1//int n1=reader.read();//二//char[] chs=new char[1024];//读取到的字符放到chs数组中,要是文件有>=1024个字符则读取满数组,要是文件有<1024个字符则将文件的所有字符读到数组中//返回的值n2表示实际读取到数组的字符个数//int n2=reader.read(chs);//三//表示读取数据到数组cbuf中,读取的数据填充到数组的off下标,填充len个字符//reader.read(char[] cbuf,int off,int len)//一般要读取并打印完文件中的内容采用的方法while (true){char[] chs=new char[5];int n=reader.read(chs);//文件中的数据已经读取完毕if(n==-1){break;}//将当前读取到的字符进行打印for(int i=0;i<n;i++){System.out.print(chs[i]);}}}}
}

        通过inputStream读取字节流文件中的数据

读取字节流文件中的数据表示以字节为单位进行读取

//用字节流读取文件中的数据
//InputStream和Readr的使用方式大致相同
public class Demo2 {public static void main(String[] args) throws IOException {try(InputStream inputStream=new FileInputStream("./text.txt")){//一//调用不带参数的read方法只读取一个字节,当返回-1表示文件中没有数据了//inputStream.read();//二//read方法的参数输入一个byte类型的数组,表示从文件中读到的字节数据都放到bytes数组中//返回一个int类型的值表示实际读到数组bytes中的字节数据个数
//            byte[] bytes=new byte[4];
//            int n=inputStream.read(bytes);//三//read方法填入三个参数依次表示,1.将从文件中读到的字节数据放入bytes数组中,从bytes数组下标0开始放数据,一共要放4个数据
//            byte[] bytes=new byte[4];
//            inputStream.read(bytes,0,4);//遍历并输出文件中所有数据的普遍方法while (true){byte[] bytes=new byte[4];int n=inputStream.read(bytes);//读到了文件末尾if(n==-1){break;}//没有读完文件中的数据//打印数组中读到的数据for(int i=0;i<n;i++){System.out.printf("%x",bytes[i]);}}}}
}

写入

        通过writer字符输出流向文件中输出数据

 

        通过OutputStream字节输出流向文件中输出数据

        略。因为和上面writer的用法完全相同

read和write方法的参数

 

 

 

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

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

相关文章

ubuntu调整路由顺序

Ubuntu系统跳转路由顺序 1、安装ifmetric sudo apt install ifmetric2、查看路由 route -n3、把Iface下面的eth1调到第一位 sudo ifmetric eth1 0命令中eth1是网卡的名称&#xff0c;更改网卡eth1的跃点数&#xff08;metric值&#xff09;为0&#xff08;数值越小&#xf…

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…

【排序算法】python之冒泡,选择,插入,快速,归并

参考资料&#xff1a; 《Python实现5大排序算法》《六大排序算法&#xff1a;插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序》 --代码似乎是C语言 ———————— 本文介绍5种常见的排序算法和基于Python实现&#xff1a; 冒泡排序&#xff08;Bubble Sort&am…

【C++】哈希开散列 | unordered系列容器的封装

文章目录 一.开散列1. 开散列的概念2. 开散列结构3. Insert 插入4. Find 查找5. Insert 扩容6. Erase 删除7. 析构函数8. 其它函数接口9. 性能测试 二.封装1. 封装内部结构2. 实现接口 三.代器器1. 迭代器的定义2. 常用接口3. 迭代器4. begin()、end()5. find的改动6. 下标访问…

检查网站是HTTP那种协议与获取域名的ipv6地址

前言 最近在做HTTPS的应用&#xff0c;可能需要使用ipv6的地址做SLB&#xff0c;但是怎么检查配置正确&#xff0c;总不能每次都看日志吧&#xff0c;实际上客户端也很容易查看&#xff0c;总结工作经验。 检查HTTP协议版本 笔者想到了使用浏览器方式&#xff0c;或者抓包&a…

Java Selenium WebDriver 网页填报

一、windows环境安装配置 1.安装chrome浏览器 在“关于chrome”界面&#xff0c;查看浏览器版本号 2.下载chromeDriver 在https://registry.npmmirror.com/binary.html?pathchromedriver/下载对应版本的驱动&#xff08;如果浏览器版本过新&#xff0c;建议下载最接近的版…

Docker环境下MySQL备份恢复工具XtraBackup使用详解 | Spring Cloud 62

一、XtraBackup 简介 Percona XtraBackup是一个开源的MySQL和MariaDB数据库备份工具&#xff0c;它能够创建高性能、一致性的备份&#xff0c;并且对生产环境的影响很小。Percona XtraBackup通过在不停止MySQL服务器的情况下&#xff0c;复制InnoDB存储引擎的数据文件和事务日…

fetch-github-hosts间隔一年大更新v2.6发布,多端支持

前言 fetch-github-hosts是一款同步 github hosts 的工具&#xff0c;用于帮助您解决github时而无法访问的问题。在间隔了一年之久的时间&#xff0c;最近抽空将fetch-github-hosts的依赖及UI进行了一波大更新&#xff0c;同时也增加了一些实用的功能。 主要更新 更新了基础依…

Linux 中利用设备树学习Ⅳ

系列文章目录 第一章 Linux 中内核与驱动程序 第二章 Linux 设备驱动编写 &#xff08;misc&#xff09; 第三章 Linux 设备驱动编写及设备节点自动生成 &#xff08;cdev&#xff09; 第四章 Linux 平台总线platform与设备树 第五章 Linux 设备树中pinctrl与gpio&#xff08;…

【传统视觉】C#创建、封装、调用类库

任务 因为实现代码相对简单&#xff0c;然后又没有使用Opencv&#xff0c;所以就直接用C#实现&#xff0c;C#调用。 1.创建类库 1.1新建一个类库 vs2015 > 文件 > 新建 > 项目 using System; using System.Collections.Generic; using System.Linq;namespace Yo…

【go-zero】docker镜像直接部署API与RPC服务 如何实现注册发现?docker network 实现 go-zero 注册发现

一、场景&问题 使用docker直接部署go-zero微服务会发现API无法找到RPC服务 1、API无法发现RPC服务 用docker直接部署 我们会发现API无法注册发现RPC服务 原因是我们缺少了docker的network网桥 2、系统内查看 RPC服务运行正常API服务启动,通过docker logs 查看日志还是未…

python#django数据库一对一/一对多/多对多

一对一OneToOneField 用户和用户信息 搭建 # 一对一 class TestUser(models.Model): usernamemodels.CharField(max_length32) password models.CharField(max_length32) class TestInfo(models.Model): mick_namemodels.CharField(max_length32) usermode…