读取文件和写入文件操作

        在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方法的参数

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker 容器化学习

文章目录 前言Docker架构 1、 docker安装2、启动docker服务3、设置docker随机器一起启动4、docker体验5、docker常规命令5.1、容器操作docker [run|start|stop|restart|kill|rm|pause|unpause]docker [ps|inspect|exec|logs|export|import] 5.2、镜像操作docker images|rmi|tag…

深入了解 PostgreSQL 扩展插件

深入了解 PostgreSQL 扩展插件 在 PostgreSQL 数据库中&#xff0c;扩展插件是极具价值的工具&#xff0c;它们为我们提供了丰富多样的功能增强。本篇博客将深入介绍几个常用的 PostgreSQL 扩展插件&#xff0c;包括 pg_stat_statements、uuid、postgis 以及 postgis_raster。…

vector模拟实现

vector模拟实现 构造函数拷贝构造函数析构函数赋值运算符重载容量大小相关的函数size()capacity()reserveresize 修改容器内容相关函数push_backpop_backinserteraseswap 访问容器内容相关函数operator[] 与迭代器相关函数begin()和end()关于迭代器失效的问题 构造函数 vector…

【JVM】垃圾回收 ——自问自答2

Q: System.gc() 的理解 System.gc()底层调用的是 Runtime.getRuntime.gc(),会现实出发FullGC。 但是&#xff0c;它的调用附带一个免责声明&#xff0c;无法保证对垃圾收集器的调用。 Q&#xff1a; 内存溢出和内存泄漏&#xff1f; 内存溢出&#xff1a; 简而言之&#xf…

删除这4个文件夹,流畅使用手机无忧

在现代社会中&#xff0c;手机已经成为我们生活中不可或缺的一部分。然而&#xff0c;随着使用时间的增长&#xff0c;我们可能会遇到手机卡顿和内存不足的问题&#xff0c;让我们感到十分困扰。手机卡顿不仅影响使用体验&#xff0c;还可能导致应用程序运行缓慢&#xff0c;甚…

3分钟白话RocketMQ系列—— 核心概念

白话3分钟&#xff0c;快速了解RocketMQ基础&#xff0c;包括适用场景&#xff0c;以及基本概念。 看完如果不了解&#xff0c;欢迎来打我。 关键字摘要 低延迟、高可用、高可靠、高并发 的消息中间件适合在线业务分为producer、consumer、nameserver、broker等角色另外还有主…

第3章 语言基础

引言 任何语言的核心所描述的都是这门语言在最基本的层面上如何工作&#xff0c;涉及语法、操作符、数据类型以及内置功能&#xff0c;在此基础之上才可以构建复杂的解决方案 本章接下来的内容主要基于ECMAScript第6版。ES6 语法 js的语法借鉴了c/c&#xff0c;java。js是相对…

快速消除视频的原声的技巧分享

网络上下载的视频都会有视频原声或者背景音乐&#xff0c;如果不喜欢并且想更换新的BGM要怎么操作呢&#xff1f;今天小编就来教你如何快速给多个视频更换新的BGM&#xff0c;很简单&#xff0c;只需要将原视频的原声快速消音同时添加新的背景音频就行&#xff0c;一起来看看详…

c语言函数作为形参的注意事项

1、c语言数组作为形参会退化成数组指针 #include "stdio.h" #include <stdlib.h>//数组作为函数的形参会退化成指针 void print_arr(int a[5]);// int *b int main() {int arr[5] { 1,2,3,4,5 };print_arr(arr);return 0; }void print_arr(int a[5]) {printf…

UVA1347 旅行 Tour (样例解释 + 思路心得 + 代码)

目录 题目大意 样例解释 第一组样例解释 第二组样例解释 有注释的代码 没有注释的代码 题目大意 样例解释 &#xff08;多组样例&#xff09; 第一组样例解释 第二组样例解释 &#xff08;没有注释的代码实际上很短 在后面&#xff09; 有注释的代码 思路和心得都在代码里, 快…

【Linux】计算机网络的背景和协议分层

文章目录 网络发展协议何为协议网络协议协议分层OSI七层模型TCP/IP五层模型&#xff08;四层&#xff09; 基本通信流程mac地址和ip地址网络通信本质 网络发展 从一开始计算机作为一台台单机使用&#xff0c;到现在网络飞速发展&#xff0c;从局域网Lan建立起局域网&#xff0…

git bash 安装sdkadmin

1.下载相关安装包,复制到git 安装目录 D:\software\Git\mingw64\bin 2. 运行 curl -s "https://get.sdkman.io" | bash

Service not registered 异常导致手机重启分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、Service not registered 异常导致手机重启二、Service not registered 解决方案 一、Service not registered 异常导致手机重启 1.重启 的部分Log如…

某大型医院门户网站性能分析案例

故障现象 门户网站近期出现少量的访问体验慢现象&#xff0c;主要是由于服务器响应时间慢。出现慢页面的页面簇为&#xff1a;http://www.xxx.ac.cn/。 分析过程 下面将分析异常原因:页面的URL信息&#xff1f;页面慢的原因&#xff1f; 性能问题分析&#xff0c;定位到慢访…

不可错过的家装服务预约小程序商城开发指南

在当今社会&#xff0c;家装行业发展迅速&#xff0c;越来越多的人开始寻求专业的家装预约和咨询服务。对于不懂技术的新手来说&#xff0c;创建一个自己的家装预约咨询平台可能听起来很困难&#xff0c;但实际上通过一些第三方制作平台和工具&#xff0c;这个过程可以变得简单…

ES6 数组的用法

1. forEach() 用来循环遍历的 for 数组名.forEach(function (item,index,arr) {})item:数组每一项 , index : 数组索引 , arr:原数组作用: 用来遍历数组 let arr [1, 2, 3, 4]; console.log(arr); let arr1 arr.forEach((item, index, arr) > {console.log(item, index…

客服型电话呼叫中心系统,助力企业提升客户服务质量

客服型电话呼叫中心系统是企业客户服务的重要工具之一&#xff0c;它通过电话和网络等方式&#xff0c;为客户提供快速、便捷、高效的服务。客服型电话呼叫中心系统具备自动接听来电、自动路由、管理知识库、录音和监控、生成报表分析等多种功能&#xff0c;有利于企业提高客户…

【前端 | CSS布局】 网格布局(grid)

概述 网格布局&#xff08;Grid&#xff09;是最强大的 CSS 布局方案。 它将网页划分成一个个网格&#xff0c;可以任意组合不同的网格&#xff0c;做出各种各样的布局。以前&#xff0c;只能通过复杂的 CSS 框架达到的效果&#xff0c;现在浏览器内置了。 上图这样的布局&am…

VS+QT+VTK treeView树型结构模型加载隐藏实例

程序示例精选 VSQTVTK treeView树型结构模型加载隐藏实例 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQTVTK treeView树型结构模型加载隐藏实例>>编写代码&#xff0c;代码…

uniapp h5支付宝支付后端返回Form表单,前端如何处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1.调取接口拿到后端返回的form表单 前言 uniapp h5 支付宝支付&#xff0c;后端返回一串form表单&#xff0c;前端如何拿到支付串并且调用支付 1.调取接口拿到…