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)
    在这里插入图片描述
//字节输入流 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) {
        }
    }

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

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

相关文章

处理机调度与死锁

目录 进程调度算法先来先服务调度算法FCFS最短作业优先调度算法SJF最高优先级调度算法***HPF***高响应比优先调度算法 ***HRRN***时间片轮转调度算法***RR***多级队列调度算法MFQ 进程调度算法 进程调度算法也称为CPU调度算法 当 CPU 空闲时,操作系统就选择内存中…

一天一个设计模式---工厂方法

概念 工厂模式是一种创建型设计模式,其主要目标是提供一个统一的接口来创建对象,而不必指定其具体类。工厂模式将对象的实例化过程抽象出来,使得客户端代码不需要知道实际创建的具体类,只需通过工厂接口或方法来获取所需的对象。…

uniapp中uview组件库丰富的Table 表格的使用方法

目录 #平台差异说明 #基本使用 #兼容性 #API #Table Props #Td Props #Th Props 表格组件一般用于展示大量结构化数据的场景 #平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序√√√√√√√ #基本使用 本组件标签类似HTML的table表格&#…

模型评估:评估指标的局限性

“没有测量,就没有科学。”这是科学家门捷列夫的名言。在计算机科学特别是机器学习领域中,对模型的评估同样至关重要。只有选择与问题相匹配的评估方法,才能快速地发现模型选择或训练过程中出现的问题,迭代地对模型进行优化。模型…

猫头虎分享:Linux 如何安装最新版的Docker和Docker-Compose 教程 ‍

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

教你如何将本地虚拟机变成服务器,供其它电脑访问

场景:最近在做数据仓库的作业,需要团队协作,买不起阿里云服务器,所以想到能不能将我本地机上的虚拟机变成服务器,供其它同学的电脑访问。在虚拟机上安装hadoop和hive,然后同学机子上安装kettle进行连接。最…

书生大模型全链路开源体系

书生浦语大模型全链路开源体系开源了哪些东西 数据书生万卷:一个2TB的涵盖多种模态与任务的数据集预训练InternLM-Train:微调XTuner:可供你低成本微调模型的工具箱部署LMDeploy:一个服务端场景下、transformer 结构 LLM 部署工具…

【模拟IC学习笔记】Cascode OTA 设计

辅助定理 增益Gm*输出阻抗 输出短路求Gm 输入置0求输出阻抗 求源极负反馈的增益 随着Vin的增加,Id也在增加,Rs上压降增加,所以,Vin的一部分电压体现在Rs上,而不是全部作为Vgs,因此导致Id变得平滑。 Rs足…

Python书籍推荐,建议收藏

学习Python的书籍可太多了,从入门到放弃,应有尽有啊 入门书籍 根据豆瓣评分的高低,这里介绍了一些经典入门书籍,大家根据自身情况选择尝试 《Python编程:从入门到实践(第二版)》 非常经典且非…

搜维尔科技:第九届元宇宙数字人设计大赛作品规范解读!

作品提交 参赛小组需要将作品上传至百度网盘,并将分享链接发送至frankaxis3d.cn邮箱。邮寄格式如下: 邮件标题:作品名称元宇宙数字人设计大赛作品 邮件内容标明:学校名称、院系名称、作品名称、作者名称、联系电话及指导老师名…

vue中鼠标拖动触发滚动条的移动

前言 在做后端管理系统中,像弹窗或大的表单时,经常会有滚动条的出现,但有些时候如流程、图片等操作时,仅仅使用鼠标拖动滚动条操作不太方便,如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 功能设计 如…

【leetcode】力扣算法之删除链表中倒数第n个节点【中等难度】

删除链表中倒数第n个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 用例 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 输入:head [1], n 1 输出:[] 输入:head …

蓝牙模块在电动汽车充电设施中的创新应用

随着电动汽车的普及,充电设施的便捷性和智能化成为关键的发展方向。蓝牙技术作为一种无线通信技术,在电动汽车充电设施中发挥着越来越重要的作用。本文将深入探讨蓝牙模块在电动汽车充电设施中的创新应用,以提高充电体验、提升管理效率&#…

“程序员面试之道:成为求职战场上的不可忽视的力量“

文章目录 每日一句正能量前言面试经历面试技巧后记 每日一句正能量 看淡拥有,不刻意追求某些东西,落叶归根,那些属于你的,总会回来。 前言 在现代科技发展日新月异的时代,程序员无疑扮演着重要的角色。他们是代码的创…

我的1827创作纪念日

机缘 习惯性早上打开电脑,看看CSDN上的资讯,了解行业动态、当前新的技术和大佬的分享。自己动手写应该是2019 年 01 月 08 日,当时应该是在用安装和使用Oracle,遇到一些问题,写下第一篇博客 Oracle存储过程常见问题及…

经典算法-遗传算法的解走迷宫例子

经典算法-遗传算法的一个简单例子 使用遗传算法走迷宫,如果能从起点顺利走到终点,就能获胜。 迷宫如下图所示,绿点为迷宫起点,橙色点为迷宫终点。 LLM大模型相关文章: 大模型查询工具助手之股票免费查询接口 GPT实…

flex布局(3)

九、骰子 *{margin:0;padding: 0;box-sizing: border-box; } .flex{display: flex;flex-flow: row wrap;justify-content: space-between;align-items: center;align-content: space-between;padding:20px; } .touzi{width: 120px;height: 120px;background-color: aliceblue;…

Allure04-用例失败截图

Allure04-用例失败截图 高清B站视频链接 使用pytest_runtest_makereport钩子函数实现allure报告添加用例失败截图 以下是conftest.py实现内容 #!/usr/bin/env python # -*- coding: utf-8 -*- # 作者:扶摇 import allure import pytest from selenium import webd…

Linux下进程控制

文章目录 创建进程fork创建进程fork返回值写诗拷贝fork常规用法fork失败的原因 进程终止进程正常终止查看进程退出码_exit函数exit函数exit 和 _exit 的区别return退出 进程等待进程等待的方式wait方法(系统调用)waitpid方法(系统调用) WEXITSTATUS 和 WIFEXITED阻塞等待和非阻…

powerdesigner导出sql将name放到comment注释上

1. 批量设置 2. 脚本 Option Explicit ValidationMode True InteractiveMode im_Batch Dim mdl the current modelget the current active model Set mdl ActiveModel If (mdl Is Nothing) ThenMsgBox"There is no current Model " ElseIf Not mdl.IsKindOf(PdPD…