JavaSE第八章 IO流

本文详细介绍了Java中的File类,包括构造方法、创建、删除、重命名、判断及获取功能。接着讨论了字节流(InputStream, OutputStream)、字符流(Reader, Writer)以及打印流的使用,特别是PrintStream和PrintWriter的构造方法和打印操作。最后,讲解了对象的序列化过程,实现序列化的关键在于实现Serializable接口,并介绍了对象输入输出流在序列化和反序列化中的作用。" 136926711,21690196,Kubernetes命令详解:kubectl使用手册,"['Kubernetes', '容器', '云原生', 'DevOps', 'Linux']
摘要由CSDN通过智能技术生成

8 第八章IO流

8.1 File类

File 就是文件 ,在java中表示路径名。

  • 实例File类是不可变的; 也就是说,一旦创建,由File对象表示的抽象路径名永远不会改变。

路径有相对路径和绝对路径。

8.1.1 构造方法

  • File(String path)
    将一个字符串描述的路径,封装成一个 File对象。
  • File(String parent,String Child)
    将两个字符串(父级路径, 子级路径),拼接之后形成的路径封装成一个File对象。
  • File(File parent, String child)
    将File类型的父级路径和String类型的字节路径拼接成一个新路径,封装成File对象

**注意:**创建好File对象后,只是封装了一个路径, 和磁盘上是否有这个路径无关。

8.1.2 创建功能

  • createNewFile() 创建文件
  • mkdir() 创建文件夹,如果父级路径不存在,则文件夹创建失败。
  • mkdirs() 创建文件夹,如果路径不存在,则会自动创建路径。

8.1.3 删除功能

  • delete() 可以删除文件,也可以删除文件夹。

注意:不能删除非空文件夹(也就是说只要文件夹里还有文件,delete()方法就不能删除这个文件夹

8.1.4 重命名功能

  • renameTo(File dest) 重命名,参数是修改后的文件路径。

注意:如果修改了父级路径就是剪切+重命名,不修改父级路径就仅仅只是重命名。

8.1.5 判断功能

  • exists(),判断调用者路径是否存在
  • isFile(),判断调用者是否是一个文件
  • isDirectory(),判断调用者是否是一个文件夹

8.1.6 获取功能

获取路径
  • getName() 获取最短的那个文件或者文件夹名称
  • getPath() 获取相对路径,构造方法中传入的那个字符串
  • getAbsolutePath() 获取绝对路径
获取文件的属性
  • length() 获取文件的字节个数,只能针对文件使用,不能针对文件夹使用
  • lastModified() 获取文件的最后修改时间
获取文件夹中的内容
  • String[] list() 返回文件夹中的所有内容的名称(不包含子文件夹中的内容)
  • File[] listFiles() 返回文件夹中的所有内容的File对象(不包含子文件夹中的内容) 注意事项: 这两个方法只能针对文件夹使用,不能针对文件使用

8.2 IO流

8.2.1 字节流

InputStream

InputStream是一个定义了Java流式字节输入模式的抽象类。该类的所有方法在出错条件下引发一个IOException 异常。它的主要方法定义如下

方法 方法介绍
available() 返回可读的字节数量
read(byte[] b,int off,int len)
read()
skip(long n) 跳过指定的字节数
close() 关闭流,释放资源
reset() 重新读取位置为上次mark标记的位置
markSupported() 如果调用的流支持mark()或reset()就返回true
OutputStream

OutputStream是定义了流式字节输出模式的抽象类。该类的所有方法返回一个void值并且在出错情况下引发一个IOException异常。它的主要方法定义如下:

方法 方法介绍
write(int b) 向输出流写入单个字节
write(byte[] buffer) 向一个输出流写入一个完整的字节数组
write(byte[] buffer,int off,int numBytes) 写入数组buffer 以 buffer[offset]为起点的numBytes个字节区域内的内容
flush() 刷新缓冲流
close() 关闭输出流

8.2.2 字符流

Reader

Reader是Java定义的流式字符输入模式的抽象类。类中的方法在出错时引发IOException异常。

方法 方法介绍
read()
read(char[] buffer)
read(char[] buffer,int off,int numChars)
ready()
skip(long numChars)
markSupported()
reset()
mark(int numChars)
close()
Writer

Reader是Java定义的流式字符输入模式的抽象类。类中的方法在出错时引发IOException异常。

方法 方法介绍
write(char[] buffer)
write(char[] buffer,int off,int numChars)
close()
flush()
append(CharSequence csq) 追加一个字符序列
append(CharSequence csq, int start,int end)
append(char c) 追加写入一个16位的字符

8.3 打印流

在整个IO包中,打印流是输出信息最方便的类,主要包括字节打印流(PrintStream)和字符打印流(PrintWriter)。打印流提供了非常方便的打印功能,可以打印任何的数据类型。如:小数、整数、字符串等。

PrintStream和PrintWriter都属于输出流,分别针对输出字节和字符。

PrintStream和PrintWriter提供了重载的print()、println()方法用于多种数据类型的输出。

PrintStream和PrintWri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值