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.hqwc.cn/news/336969.html

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

相关文章

vue文件在<template>中使用多个<el-main>报错(已解决)

目录 1.原理 2. 根据你的需求,自定义每个 组件的内容。你可以在 标签内部插入文本、其他组件、样式等。 3. 根据需要添加样式或其他属性到每个 组件。你可以使用 class、style 或其他属性来自定义每个组件的外观和行为。 4.一个可以运行的总代码如下 5.我的一…

【免费送书】Java从入门到精通:轻松领会Java程序开发的精髓

内容简介 《Java从入门到精通(第7版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为4篇共24章,内容包括初识Java,开发工具&#xf…

【FPGA/verilog -入门学习17】vivado 实现串口自发自收程序

1,需求 PC使用串口助手给FPGA板发送9600 波特率的数据,FPGA板接收到数据后,回复同样的数据给PC 2,需求分析 按模块可以划分为: rx接收模块,将输入的8位并行rx 数据转换成[7:0]rx_data 信号,当…

wireshark使用教程

目录 windows平台安装Wireshark组件选择Additional TasksPacket CaptureUSB CaptureNpcap Installation Options Ubuntu上安装 Wireshark不使用 sudo 运行 Wireshark 使用GUI抓包使用命令行抓包确定抓取哪个网卡的报文抓取数据包停止抓包设置过滤条件 参考资料 Wireshark 是一款…

Leetcode242有效的字母异位词(java实现,详细易懂想学会的进!!!)

今天给大家分享的题目是leetcode242有效的字母异位词 我们先看题目描述: Chatgpt中对于字母异位词的解释如下: 字母异位词是指由相同的字母组成但顺序不同的单词。换句话说,字母异位词具有相同的字母,只是排列顺序不同。 简单的将…

AirBrush - AI 照片编辑器

​【应用名称】:AirBrush - AI 照片编辑器 ​【适用平台】:#Android ​【软件标签】:#AirBrush ​【应用版本】:6.0.1 ​【应用大小】:270MB ​【软件说明】:谁说我们的照片不能完美?我们相信…

生成式人工智能市场规模、趋势和统计数据(2024-2026)

生成式人工智能市场规模、趋势和统计数据(2024-2026) 目录 生成式人工智能市场规模、趋势和统计数据(2024-2026)一、生成式人工智能行业亮点二、生成式人工智能市场规模三、生成式人工智能市场增长预测四、生成式人工智能采用统计…

imgaug库指南(13):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里,数据是模型训练的基石,其质量与数量直接影响着模型的性能。然而,获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此,数据增强技术应运而生,成为了解决这一问题的…

基于深度学习的老照片修复系统

技术栈 深度学习 pytorch tensorflow python 卷积神经 神经网络 照片修复 vue 老照片修复 扫描褪色 残损照片或胶片 调整暗调/高光以改善面效果 修正曝光斑痕 背景: 随着时间的流逝,许多老照片可能会褪色、损坏或曝光不当。这些老照片记录了宝贵的回忆…

HelpLook VS Docusaurus:SaaS 知识库软件和 SSG 的对比

在选择文档工具时,需要考虑多个因素,如功能、易用性、成本等。Docusaurus是一个开源工具,它因其灵活性而受到文档团队的青睐,尤其是负责软件产品文档的团队。有些组织甚至可能要求使用开源软件,因此选择一个开源工具如…

【算法刷题】Day28

文章目录 1. 买卖股票的最佳时机 III题干:算法原理:1. 状态表示:2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码: 2. Z 字形变换题干:算法原理:1. 模拟2. 找规律 代码: 1. 买卖股票的最佳时…

MySQL:ERROR 1067 - Invalid default value for ‘end_time‘【解决办法】

问题描述(mysql版本:5.7.36): 今天在使用Navicat可视化工具运行sql文件,发生如下错误: 在图中,sql是没有错误的,但是运行报错Invalid default value for end_time。 解决办法&#…