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

news2024/9/20 19:39:27

文件

文件:文件是放在一起的数据的集合。比如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)
    在这里插入图片描述
//字节输入流 InputStream
        FileInputStream 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 {
        //字节输出流 写OutputStream
        FileOutputStream 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.coloradmin.cn/o/1369994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql原理--事务

1.事务的起源 对于大部分程序员来说,他们的任务就是把现实世界的业务场景映射到数据库世界。比如银行为了存储人们的账户信息会建立一个 account 表: CREATE TABLE account (id INT NOT NULL AUTO_INCREMENT COMMENT 自增id,name VARCHAR(100) COMMENT …

这些开源自动化测试框架,会用等于白嫖一个w

作者:黑马测试 链接:https://www.zhihu.com/question/19923336/answer/2585952461 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 随着计算机技术人员的大量增加,通过编写代码来…

C#上位机快速开发笔记

1.下载vs2012版本,安装密钥解除 #微信文章教程有详细描述,公众号“软件安装管家目录” 2.新建工程 3.界面模块介绍 3.资源管理器 3.1 图标修改位置 3.2 软件版本信息文件介绍 4.常用工具箱控件 1. Button按钮 #按键函数代码,按下按…

【Python排序算法系列】—— 希尔排序

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 希尔排序 (ShellSort) 由来和特点 理解 过程演示 Step1:…

GO语言笔记3-指针

指针的概念 先看一段代码的输出 package main import "fmt" func main(){ var age int 18fmt.Println("age的内存地址值是:",&age)//age的内存地址值是: 0xc000012090// 定义一个指针变量// *int 是一个指针类型,可以理解为指向int类型的…

Native组件Widget

demo下载路径 gitgithub.com:haijun-suyan/ReminderWidget.git 注意: 组件开发 SwiftUI 添加链接描述

鼠标随动指定区域高亮显示(Excel聚光灯)

实例需求:工作表中数据表实现跟随鼠标选中高亮效果,需要注意如下几个细节需求 数据表为连续区域,但是不一定从A1单元格开始数据表的前两行(标题行)不使用高亮效果数据表中已经应用了条件格式,高亮显示取消…

0109作业

1> 思维导图 2> 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin&quo…

静态网页设计——多彩贵州(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频:https://www.bilibili.com/video/BV1cK411v7R2/?vd_source5f425e0074a7f92921f53ab87712357b 源码:https://space.bilibili.com…

【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞

Nx01 产品简介 锐捷网络成立于2000年1月,原名实达网络,2003年更名,自成立以来,一直扎根行业,深入场景进行解决方案设计和创新,并利用云计算、SDN、移动互联、大数据、物联网、AI等新技术为各行业用户提供场…

ROS2 Humble学习笔记

本文发表与个人的github pages。部分内容未同步到这里。 想查看完整内容,请移步到ROS2 Humble学习笔记。 一、前言 2013年的时候已经接触ROS了,当时断断续续学习了一些ROS的基础知识。16年搬到深圳之后,也有幸参加过星火的一次关于ROS的一些…

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测 目录 EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【EI级】Matlab实现…

三甲医院ADR智能监测系统源码,药品不良反应智能监测系统全套源码,java语言,自主研发

ADR智能监测系统源码,药品不良反应智能监测系统全套商业项目源码,自主版权 ADR监测上报系统是基于医院临床数据中心而建立,运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能。 系统自动提取不良反应报告数据&…

灵活轻巧的java接口自动化测试实战

前言 无论是自动化测试还是自动化部署,撸码肯定少不了,所以下面的基于java语言的接口自动化测试,要想在业务上实现接口自动化,前提是要有一定的java基础。 如果没有java基础,也没关系。这里小编也为大家提供了一套jav…

手撕 PCA

PCA(Principal Component Analysis),中文名称:主成分分析。迄今为止最流行的降维算法。 假设 n 维空间中的一个单位立方体,易知:一维空间中该立方体中任意两点的距离不超过 1 1 1,二维空间中该…

【MySQL函数】掌握这些常用函数,让你的数据库操作如虎添翼!

目录 强制走索引 字符串函数 通配符 CONCAT:连接两个或多个字符串 LENGTH:返回字符串的长度 LOWER:将字符串转换为小写 UPPER:将字符串转换为大写 TRIM:删除字符串开头和结尾的空格 字符串转化为number 替换…

24/01/09 qt work

1. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是…

doris部署

doris-2.0.1.1部署安装 一、下载doris安装包二、解压到/data下,修改名称三、修改fe配置文件四、启动doris-fe五、验证doris-fe六、修改be配置文件七、启动doris-be八、mysql中连接be,在Doris中添加后端节点九、设置密码 一、下载doris安装包 wget https…

【开源】基于JAVA+Vue+SpringBoot的大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

单片机原理及应用:中断服务函数

承接上文,今天我们来学习一下中断服务函数,对中断不了解的朋友可以回顾一下笔者之前的文章 中断系统结构与控制寄存器 中断服务函数是嵌入式系统中用于处理中断事件的函数,在原版的C语言中并不存在。当发生中断事件时,系统将会跳…