Java中的输入输出处理(一)

文件

文件:文件是放在一起的数据的集合。比如1.TXT。

存储地方:文件一般存储在硬盘,CD里······比如D盘

如何访问文件属性:我们可以通过java.io.File类对其处理

File类

常用方法:

方法名称说明
boolean exists()判断文件或目录是否存在
boolean isFile()判断是否是文件
boolean isDirectory()判断是否是目录
String getPath()返回此对象表示的文件的相对路径名
String getAbsolutePath()返回此对象表示的文件的绝对路径名
String getName()返回此对象表示的文件或目录名称
boolean createNewFile()创建新文件,不创建目录
boolean delete()删除此对象指定的文件或目录
long length()返回文件的长度,单位为字节,如果文件不存在,则返回0L
package 面向对象.文件的输入与输出;import java.io.File;public class Test {public static void main(String[] args) {File file = new File("C:\\Java\\a.txt");
//        create(new File("C:\\\\Java\\\\a.txt"));
//        create(file);
//        delete(file);show(file);}public static void create(File myfile) {if (!myfile.exists()) {try {myfile.createNewFile();System.out.println("文件创建成功");} catch (Exception e) {e.printStackTrace();}}}public static void delete(File myfile) {if (myfile.exists()) {myfile.delete();System.out.println("文件删除成功");} else {System.out.println("文件不存在");}}public static void show(File myfile) {if (myfile.exists()) {System.out.println("文件名:" + myfile.getName());System.out.println("相对路径:" + myfile.getPath());System.out.println("绝对路径" + myfile.getAbsolutePath());System.out.println("文件大小:" + myfile.length() + "字节");System.out.println("是否为目录(文件夹):" + myfile.isDirectory());System.out.println("是否为文件:" + myfile.isFile());} else {System.out.println("文件不存在");}}
}

读写文件

在Java中,输入和输出处理通常通过使用输入流和输出流来完成。Java提供了许多类和方法来处理输入和输出操作。

流是一组有序的数据序列,是遵循先进先出方式发送信息的通道。
在Java中,文件的读取和写入分别使用不同的流。
在这里插入图片描述
在这里插入图片描述

文件读取(输入)使用的流:

FileInputStream:用于从文件中读取字节数据

FileReader:用于从文件中读取字符数据
BufferedReader:用于读取文本文件中的行数据,并提供缓冲功能,以提高读取效率。

文件写入(输出)使用的流:

FileOutputStream:用于向文件中写入字节数据

FileWriter:用于向文件中写入字符数据
BufferedWriter:用于向文本文件中写入行数据,并提供缓冲功能,以提高写入效率。

字节输入流(读)InputStream抽象基类:

常用方法说明
int read()从输入流中读取一个字节并返回。如果已经到达流的末尾,则返回-1。
int read(byte[] b)从输入流中读取多个字节,并将读取的内容存储在给定的字节数组b中。返回实际读取的字节数。如果已经到达流的末尾,则返回-1。
int read(byte[] b, int off, int len)从输入流中读取最多len个字节,并将读取的内容存储在给定的字节数组b中,从偏移量off开始。返回实际读取的字节数。如果已经到达流的末尾,则返回-1。
long skip(long n)跳过输入流中的n个字节。返回实际跳过的字节数。
int available()返回可以从输入流中读取的字节数,而不会被阻塞。
void close()关闭输入流,并释放与之关联的任何系统资源。

子类FileInputStream常用的构造方法

  • FileInputStream(File file)
  • FileInputStream(String name)
    在这里插入图片描述
//字节输入流 InputStreamFileInputStream fis = null;File myfile = new File("C:\\Java\\a.txt");try {
//            fis = new FileInputStream("C:\\Java\\a.txt");fis = new FileInputStream(myfile);int data;System.out.println("可读取的字节数是:" + fis.available());while ((data = fis.read()) != -1) {System.out.println((char) data);}} catch (Exception e) {e.printStackTrace();} finally {try {fis.close();} catch (Exception e) {e.printStackTrace();}}}

###OutputStream 抽象基类写文本文件
当使用Markdown表格来描述OutputStream类的常用方法时,可以按照以下格式进行编写:

方法描述
write(byte[] b)将指定的字节数组写入输出流。
write(byte[] b, int off, int len)将指定字节数组的一部分写入输出流。
write(int b)将指定的字节写入输出流。
flush()刷新输出流,将缓冲区中的数据立即写入目标设备。
close()关闭输出流并释放与其关联的任何系统资源。

子类FileOutputStream常用的构造方法
FileOutputStream (File file)
FileOutputStream(String name)
FileOutputStream(String name,boolean append)
在这里插入图片描述

//写入C:\Java\a.txt中public static void testOutputStream() throws IOException {//字节输出流 写OutputStreamFileOutputStream fos = null;String str = "hello world";fos = new FileOutputStream("C:\\Java\\a.txt");byte[] bytes = str.getBytes();fos.write(bytes);System.out.println("文件写入成功");fos.close();//释放资源}

两个结合一下

    //读取C:\Java\a.txt中的内容,然后写C:\Java\a2.txt中public static void testReader() throws Exception {File file = new File("C:\\Java\\a.txt");FileReader fr = new FileReader(file);int data;while ((data = fr.read()) != -1) {}}

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

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

相关文章

LiveGBS流媒体平台GB/T28181常见问题-国标编号是什么设备编号和通道国标编号标记唯一的摄像头|视频|镜头通道

LiveGBS国标GB28181中国标编号是什么设备编号和通道国标编号标记唯一的摄像头|视频|镜头通道 1、什么是国标编号?2、国标设备ID和通道ID3、ID 统一编码规则4、搭建GB28181视频直播平台 1、什么是国标编号? 国标GB28181对接过程中,可能有的小…

安科瑞对电子半导体行业电能质量监测与治理系统解决方案——安科瑞赵嘉敏

摘要:在国家鼓励半导体材料国产化的政策导向下,本土半导体材料厂商不断提升半导体产品技术水平和研发能力,逐渐打破了国外半导体厂商的垄断格局半导体材料国产化进程,促进中国半导体行业的发展。半导体产品的制造使用到的设备如单…

c++|关键字extern

一个C语言项目往往由多个文件组合而成。而对于多个文件来说,它们可能会共用到一些相同的变量。而有些情况下,这些相同的变量并没有出现在本文件内,有可能在其他文件内。而一个文件可能只会搜寻该文件内部是否有该变量。 所以,需要…

ROS学习笔记(9)进一步深入了解ROS第三步

0.前提 1. (C)Why did you include the header file of the message file instead of the message file itself?(为包含消息的头文件而不是消息本身?) 回答:msg文件是描述ROS消息字段的文本文件,用于生成不同语言消息…

NX二次开发 Block UI 指定方位控件的应用

一、概述 NX二次开发中一般都是多个控件的组合,这里我首先对指定方位控件进行说明并结合选择对象控件,具体如下图所示。 二、实现功能获取方位其在选择面上原点的目标 2.1 在initialize_cb()函数中进行初始化,实现对象选择过滤面 //过滤平…

回归预测 | Matlab实现DE-BP差分算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现DE-BP差分算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现DE-BP差分算法优化BP神经网络多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DE-BP差分算法优化BP神经网络多变量回归预测(完整源码和…

计算机组成原理19——控制单元的功能和实现1

本系列文章是学习了网课《哈尔滨工业大学–计算机组成原理》之后,用以梳理思路而整理的听课笔记及相关思维拓展。本文涉及到的观点均为个人观点,如有不同意见,欢迎在评论区讨论。 目录 四种周期下的微操作命令取指周期间址周期执行周期非访存…

大众汽车宣布将ChatGPT,批量集成在多种汽车中!

1月9日,大众汽车在官网宣布,将ChatGPT批量集成到电动、内燃机汽车中。 大众表示,将ChatGPT与其IDA语音助手相结合,用户通过自然语言就能与ChatGPT进行互动,例如,帮我看看最近的三星米其林饭店在哪里&#…

dubbo与seata集成

1.seata是什么? Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 2.seata的注解 GlobalTransactional:全局事务注解,添加了以后可实现分布式事务的回滚和提交,用法与spring…

linux 内存管理

地址类型 一个虚拟内存系统, 意味着用户程序见到的地址不直接对应于硬件使用 的物理地址. 虚拟内存引入了一个间接层, 它允许了许多好事情. 有了虚拟内存, 系统重 运行的程序可以分配远多于物理上可用的内存; 确实, 即便一个单个进程可拥有一个虚拟 地址空间大于系统的物理内存…

Docker 镜像以及镜像分层

Docker 镜像以及镜像分层 1 什么是镜像2 Docker镜像加载原理2.1 UnionFs:联合文件系统2.2 Docker镜像加载原理2.3 Docker镜像的特点 3 镜像的分层结构4 可写的容器层 1 什么是镜像 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行…

C语言中关于函数递归的理解

递归的概念:如果一个对象部分包含它自己,或者利用自己定义自己,则称这个对象是递归的;如果 一个过程直接或间接调用自己,则称这个过程是一个递归过程。递归的主要思考方式在于:将大事化小 我们先看一个例子 题目:输入一个无符号数&#xff0…

Open CASCADE学习|非线性方程组

非线性方程组是一组包含非线性数学表达式的方程,即方程中含有未知数的非线性项。解这类方程组通常比解线性方程组更为复杂和困难。 非线性方程组在很多领域都有应用,例如物理学、工程学、经济学等。解决非线性方程组的方法有很多种,包括数值…

CCSC,一种CPU架构

core-circuit-separate-computer 核与执行电路的分离,最初是为了省电。 用寄存器实现这种分离。 V寄存器控制着执行电路的供电,V0则不供电,进入省电模式;V1则供电,进入工作模式。 P寄存器是parameter-register&#xf…

Spark与Cassandra的集成与数据存储

Apache Spark和Apache Cassandra是大数据领域中两个重要的工具,用于数据处理和分布式数据存储。本文将深入探讨如何在Spark中集成Cassandra,并演示如何将Spark数据存储到Cassandra中。将提供丰富的示例代码,以帮助大家更好地理解这一集成过程…

【数据结构】二叉树的链式实现

树是数据结构中非常重要的一种,在计算机的各方个面都有他的身影 此篇文章主要介绍二叉树的基本操作 目录 二叉树的定义:二叉树的创建:二叉树的遍历:前序遍历:中序遍历:后序遍历:层序遍历&#…

ULINK2仿真器安装使用之工程设置

一、 ULINK2仿真器 ULINK2是ARM公司最新推出的配套RealView MDK使用的仿真器,是ULink仿真器的升级版本。ULINK2不仅具有ULINK仿真器的所有功能,还增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。开发工程师通…

vite 搭建vue3 TS项目初始框架

目录 仓库地址: 一.搭建项目 1.安装 Vite: 2.创建 Vue 3 项目: 3.进入项目目录: 4.安装依赖: 5.运行项目: 6.流程实操 二.修改项目结构,显示自定义的页面 1.整理静态样式文件 1.1.在 sr…

OpenGL学习笔记-Blending

混合方程中,Csource是片段着色器输出的颜色向量(the color output of the fragment shader),其权重为Fsource。Cdestination是当前存储在color buffer中的颜色向量(the color vector that is currently stored in the …

如何将Redis、Zookeeper、Nacos配置为Windows系统的一个服务

说明:当我们在Windows上开发时,不可避免的会用到一些中间件,如Redis、Zookeeper、Nacos等等,当在项目中使用到本地的这些服务器时,我们需要把本地的服务器启动,会开启下面这样的一个窗口。 Redis服务器&am…