Java基础---IO流

1. File类

1.1  File的介绍

File是java.io.包下的类, File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)。

注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据。

1.2 File类的构造方法

构造方法说明
File(String pathName)通过给定的路径字符串构造对应的File对象
File(String parent,String child)通过给定的父路径字符串和子路径构造对应的File对象
File(File parent,String child)通过父路径的File文件和子路径构造对应的File对象

1.3 File类创建的方法

方法名说明
createNewFile()如果当前File对象描述的文件不存在则创建此文件并且返回true。如果文件已经存在返回flase。如果创建的文件的路径中有不存在的目录则创建失败并且出现异常
mkdir()如果当前File对象描述的目录不存在则创建目录并且返回true。如果目录存返回flase。如果创建的目录的父目录不存在则创建失败。不能创建多级目录
mkdirs()如果当前File对象描述的目录不存在则创建目录并且返回true。可以创建多级目录
public class Demo1 {public static void main(String[] args) throws IOException {File file1 = new File("E://a.txt");boolean b = file1.createNewFile();System.out.println(b);}
}

public static void main(String[] args) {//需求:键盘输入一个路径,创建此路径的所有内容//E://aa/bb/c.txtFile file = new File("E://aa/bb/c.txt");boolean newFile = file.mkdirs();System.out.println(newFile);}

1.4 File删除方法

 public static void main(String[] args) throws IOException {File file1 = new File("E://a.txt");boolean b = file1.delete();System.out.println(b);}

1.5 File判断方法

方法名描述
exists()判断是否存在
isDirectory()判断是否是文件夹
isFile()判断是否是文件

1.6 File的获取方法

方法名描述
getAbsolutePath()获取文件的绝对路径
getName()获取文件名
listFiles()获取当前路径下所有的子目录和子文件的File数组(只能获取当前目录下)

2. IO流

IO:输入/输出(Input/Output)

流:流是一种抽象的概念,是对数据传输的一种总称。数据在设备之间传输就称之为流

2.1 IO流分类

  • 按照数据流向:
    •  输入流:读数据
    •  输出流:写数据
  • 按照数据类型:
    • 字节流:
    •  字节输入流
    • 字节输出流
  •     字符流:
    • 字符输入流
    • 字符输出流

2.2 字节输出流

字节流的超类:
InputStream:输入
OutputStream:输出
但是两个类是抽象类,直接实例化使用不方便。

方法名描述
write(int b)将数字对应的字符写入到文件输出流。一次写入一个字节的数据
write(byte[] b)将b.length长度的字节从指定字节数组中写入到文件输出流。 一次写一个数组的数组
write(byte[] b,int off ,int len)将len长度的字节从指定数组(b)开始,从偏移量off开始写入到文件输出流。一次写入len个长度字节
close()关闭流

2.3 字节输入流

方法名描述
read()每次读取一个字节
read(byte[] b)每次读取一个数组,并且读取的长度
read(byte[] b,int off ,int len)每次读取一个数组
public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("E://a.txt");int len;while((len=fis.read())!=-1){System.out.println((char)len);}fis.close();
}

2.4 案例

public static void main(String[] args) {//需求: 完成文件复制//E://a/a.txt//E://b/a.txtFile file1 = new File("E://a/a.txt");File file2 = new File("E://b/a.txt");//每次读的容量byte[] roby = new byte[1024];int len;try {//输入流读FileInputStream fileInput = new FileInputStream(file1);//输出流写FileOutputStream fileOutput = new FileOutputStream(file2);while ((len = fileInput.read(roby)) != 1) {fileOutput.write(roby, 0, len);}fileInput.close();fileOutput.close();} catch (FileNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}

2.5 字节缓冲流

BufferedInputStream:输入字节缓冲流

 BufferedOutputStream:输出字节缓冲流

相比较字节流来说,存在了一个缓冲池可以提高效率  

public static void main(String[] args) throws IOException {BufferedInputStream buffInput = new BufferedInputStream(new FileInputStream("D://a.txt"));BufferedOutputStream buffOutput = new BufferedOutputStream(new FileOutputStream("D://b.txt"));byte[] roBy = new byte[1024];int len;while((len=buffInput.read(roBy))!=-1){buffOutput.write(roBy,0,len);}buffInput.close();buffOutput.close();}

3.  字符流

3.1 字符流的超类

  • Writer:所有输出字符流的超类
  • Reader:所有输入字符流的超类

3.2 FileReader(文件字符输入流)

  • 作用:以内存为基准,可以把文件中的数据以字符的形式读入到内存中去。
构造方法描述
FileReader(String filePath)根据指定文件路径实例化FileReader对象
FileReader(File file)根据指定文件对象实例化FileReader对象
方法名描述
reader()一次读取一个字符,如果发现没有数据可读会返回-1.
reader(char [] ch)一次读取一个字符数组
reader(char [] ch,int off,int len)一次读取一个字符数组一部分

3.3 FileWriter(文件字符输出流)

  • 作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去。
构造方法描述
FileWriter(String FileName)根据指定文件路径实例化FileWriter对象
FileWriter(String FileName,Boolean append)同上可追加数据
FileWriter(File file)根据指定文件实例化FileWriter对象
FileWriter(File file,Boolean append)同上可追加数据
方法名描述
write(int c)写入一个字符
write(char [] ch)写入一个字符数组
write(char [] ch ,int off ,int len)写入一个字符数组一部分
write(String str)写入一个字符串
write(String str,int off ,int len)写入一个字符串一部分

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

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

相关文章

Python模块-基础知识

Python模块-基础知识 1.模块分类: (1)自定义模块: 如果你自己写一个py文件,在文件内写入一堆函数,则它被称为自定义模块,即使用python编写的.py文件 (2)第三方模块&…

javaSE练习题(一)

1、BMI是根据体重测量健康的方式。通过以千克为单位的体重除以以米为单位的身高的平方计算出BMI。下面是16 岁以上人群的BMI图表: 编写一个java程序,提示用户输人以磅为单位的体重和以英寸为单位的身高,然后显示BMI值。注意: 1磅是0.453592 37千克而1英寸…

9大变频电源模块的测试参数及其重要性

变频电源是将交流电经过交流-直流-交流变换,从而得到输出为正弦波的交流电,广泛应用于家电、电机、电脑设备、测试单位、航空等领域。变频电源测试是确保系统稳定运行的重要步骤。 变频电源测试的重要参数 1. 输出电压和电流 可用万用表、电流表或者示波…

企业电脑如何管控(高效管控企业电脑的小技巧)

员工企业管理一直以来都是一个难题,难在人员多管理费劲。 因此高效管理一直都是企业最头疼的问题。 而使用一款软件辅助管理是很多企业发现的最有效的方法,如域智盾软件。 域智盾软件是一款专业的文件加密和数据安全软件,适用于各种企业和个…

4.1 用源文件写汇编代码

汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行伪指令没有对应的机器指令,最终不被CPU所执行伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作 1.2…

【LeetCode每日一题】2312. 卖木头块(DFS记忆化搜索+动态规划)

文章目录 [2312. 卖木头块](https://leetcode.cn/problems/selling-pieces-of-wood/)思路1:用DFS进行记忆化搜索代码:思路2:动态规划代码: 2312. 卖木头块 思路1:用DFS进行记忆化搜索 1.要用DFS深度优先遍历每一种情况。在递归的同时,不断更…

【什么是Internet?网络边缘,网络核心,分组交换 vs 电路交换,接入网络和物理媒体】

文章目录 一、什么是Internet?1.从具体构成角度来看2.从服务角度来看 二、网络结构1.网络边缘1.网络边缘:采用网络设施的面向连接服务1.1.目标:在端系统之间传输数据1.2.TCP服务 2.网络边缘:采用网络设施的无连接服务2.1目标&…

unicloud快速上手,unicloud项目创建以及项目创建注意事项

uniCloud快速上手 本项目地址https://gitee.com/qayrup/unicloud-demo 创建unicloud项目 新建一个uni项目,并选择启用unicloud,选择阿里云或腾讯云 阿里云和支付宝云都支持一个月免费的云,如果只想体验啥的,可以选择这两个, 但是需要注意,支付宝云需要配置跨域,否则很多云函…

XCode升级错误:Command CompileC failed with a nonzero exit code 解决办法

升级完XCode之后,bulid失败,出现如下错误: 问题1: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrunCommand Compi…

网络编程面试题

一、什么是IP地址 1.IP地址是主机在网路中的唯一标识,,当主机从一个网络切换到另一个网络时,会更改IP地址,同样的IP地址也是路由器进行路由选择的标识 2.IP地址的分类 IPV4:采用4字节无符号整数存储 IPV6&#xff…

【JVM】垃圾收集算法,垃圾收集器,调优,如何判断类是无用的类?对象一定分配在堆中吗?了解逃逸分析技术吗?

目录 垃圾收集算法 标记-清除 标记-复制 标记-整理 分代收集算法 垃圾收集器 CMS收集器 G1 收集器 Serial收集器 ParNew收集器 Parallel Scavenge 收集器 Serial Old 收集器 Parallel Old 收集器 引用类型总结 调优 调优命令 调优工具 调优参数 如何判断类是…

PPT好看配色

放几个链接!画图时候可以参考!转自知乎 Color Hunt ColorDrop 中国色 Flat UI Colors Coolors

Stable Diffusion之核心网络结构解析

Stable Diffusion核心网络结构解析 1. SD模型整体架构初识 1. SD模型整体架构初识 Stable Diffusion模型整体上是一个End-to-End模型,主要由以下三个核心组件构成。 VAE(变分自编码器,Variational Auto-Encoder),U-N…

Redis设计原理简介

键值存储模型: Redis是一个基于内存的键值对存储系统,它支持五种基本数据结构(字符串String、哈希Hash、列表List、集合Set、有序集合Sorted Set)以及几种高级数据结构如Bitmaps、HyperLogLogs等。 单线程架构: Redis采…

VMware部署银河麒麟遇到的问题记录

1. 解决VMware Workstation安装VMware Tools显示灰色的办法 1.关闭虚拟机; 2.在虚拟机设置分别设置CD/DVD、CD/DVD2和软盘为自动检测三个步骤; 3.再重启虚拟机,灰色字即点亮。 2.Linux安装vmTool

【兆易创新GD32H759I-EVAL开发板】Keil 工程警告 Multiply defined Global Symbol 原因排查

在测试【兆易创新GD32H759I-EVAL开发板】过程中 遇到许多小坎坷 今天遇到的是 .\Objects\Project.axf: Warning: L6439W: Multiply defined Global Symbol OS_Tick_Enable defined in .text.OS_Tick_Enable(os_systick_1.o) rejected in favor of Symbol defined in .text.O…

最尴尬的论文!ChatGPT 抄来的忘记删掉提示词,211高校教授发表在一区SCI期刊

张同学,你的ChatGPT指令提示词忘记删除了?!!!! 近期,一篇题目为“The three-dimensional porous mesh structure of Cu-based metal-organic-framework - aramid cellulose separator enhances …

面试算法-68-将有序数组转换为二叉搜索树

题目 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视…

【计算机】——51单片机

单片机是一种内部包含CPU、存储器和输入/输出接口等电路的集成电路(IC芯片) 单片机是单片微型计算机(Single Chip Microcomputer)的简称,用于控制领域,所以又称为微型控制器(Microcontroller U…

TikTok小店运营经验分享,美国本土小店怎么做?

作为资深跨境老玩家,虽不说是经验丰富,至少也是摸清了基本的玩法思路。TikTok作为近来的跨境新蓝海,他的玩法其实并不难,作为第一批试错玩家,今天也诚心给大家分享一些美国本土小店运营经验,感兴趣的话就看…