JavaIO

JavaIO流包括字节流和字符流,用于处理数据在设备间的传输。字节流分为输入流和输出流,如FileInputStream和FileOutputStream,而字符流如Reader和Writer则用于读写字符。File类提供了文件和目录的相关操作,Properties类用于处理属性集合。在使用IO流时,注意资源管理,通常使用try-catch-finally确保流被正确关闭。
摘要由CSDN通过智能技术生成
  • IO:输入/输出(input/ouput)。
  • 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输。
  • IO 流就是用来处理设备间数据传输问题的,常见的应用:文件复制,文件上传,文件下载。

javaio整体分为File类,IO流结构,Properties类。

File类是基础,包含了对文件系统的常用方法(静态方法);

I0流按流向分两类:1输入类 2输出类

按数据类型:

1字节流

     字节输入流inputStream

      字节输出流OutputStream

输出/出流使用

以Java程序为参照,磁盘的数据传入输入流,java到磁盘输出流

FilterInputStream (读取硬盘文件的输入流)

作用:将java程序的数据写入本地磁盘

构造方法:

new FileOutputStream(String name)创建基于磁盘的字节输出流对象,以字符串参数表示磁盘的路径     

new FileOutputStream(String file)创建基于磁盘的字节输出流对象,以filefile参数表示磁盘的路径     Eile(“路径”)

成员方法

 FilelnputStream

文件输入流,也是字节流,注要用于将磁盘的数据读取到java程序中

构造方法:new FileinputStream(String name)

new FileinputStream(File name)

成员方法

 

字节流写数据加异常处理

一般直接在外面包try{}catch{},但是会有一个问题,如果写入数据失败会运行catch的内容,但是close方法没有运行到也就是资源没有被释放。所以在io操作一定要保存内存被释放。

提供了finally块来执行所有清除操作

finally:在异常处理时提供finally块来执行所有清除的操作。比如io流中的资源释放。
特点:被finally块控制的语句一定会执行,除非JVM退出

2字符流

       字符输入流reader

InputStreamReader:从字节流到字符流的桥梁(InputStreamReader构造器入参是FileInputStream的实例对象),它读取字节并使用指定的字符集将其解码为字符。它使用的字符集可以通过名称指定,也可以显式给定,或者可以接受平台的默认字符集。
BufferedReader:从字符输入流中读取文本,设置一个缓冲区来提高效率。BufferedReader是对InputStreamReader的封装,前者构造器的入参就是后者的一个实例对象。
FileReader:用于读取字符文件的便利类,new FileReader(File file)等同于new InputStreamReader(new FileInputStream(file, true),"UTF-8"),但FileReader不能指定字符编码和默认字节缓冲区大小。
PipedReader :管道字符输入流。实现多线程间的管道通信。
CharArrayReader:从Char数组中读取数据的介质流。
StringReader :从String中读取数据的介质流。

字符输入流Reader主要方法:

read():读取单个字符。
read(char[] cbuf) :将字符读入数组。
read(char[] cbuf, int off, int len) : 将字符读入数组的某一部分。
read(CharBuffer target) :试图将字符读入指定的字符缓冲区。
flush() :刷新该流的缓冲。
close() :关闭此流,但要先刷新它。
 

         字符输出流writer

WriterReader结构类似,方向相反,不再赘述。唯一有区别的是,Writer的子类PrintWriter

write(char[] cbuf) :写入字符数组。
write(char[] cbuf, int off, int len) :写入字符数组的某一部分。
write(int c) :写入单个字符。
write(String str) :写入字符串。
write(String str, int off, int len) :写入字符串的某一部分。
flush() :刷新该流的缓冲。
close() :关闭此流,但要先刷新它。
 

File类:

构造方法:

File(String pathname) //根据形参创建File对象,所表示的文件或文件夹可以存在,也可以不存在
File(String parent, String child)
File(File parent, String child)

静态成员变量

public static String pathSeparator: 系统中多个路径的分隔符 //windows ;
public static String separator: 系统中一个路径中多个名称之间的分隔符号 //windows \

File类的获取方法

public String getAbsolutePath() 返回此File的绝对路径名字符串。
public String getPath() 返回构造方法中的字符串路径
public String getName() 返回此File表示的文件或文件夹的名称。
public long length() 返回由此File表示的文件的长度。
public File getParent() 返回此File的父目录
public File getParentFile() 返回此File的父目录File对象
public long getFreeSpace() 返回该分区上 空闲空间 long 字节
public long getUsableSpace() 返回该分区上 空闲空间 long 字节 ,会检查写等权限,更准确
public long getTotalSpace() 返回该分区上的总空间

File类的判断方法

public boolean exists() :
public boolean isDirectory() :此File表示的是否为目录。
public boolean isFile() :此File表示的是否为文件。

File类的创建删除方法

public boolean createNewFile() 该名称的文件不存在时,才会创建一个新的空文件。
public boolean mkdir() : 创建由此File表示的目录。
public boolean mkdirs() : 创建由此File表示的目录,创建多级文件夹
public boolean delete() : 只能删除掉文件和空文件夹,java中删除动作不走回收站。
返回值都是方法是否成功执行。

File类的遍历方法

public String[] list() 获取当前目录下的所有的目录和文件的字符串数组
public File[] listFiles() 获取当前目录下的所有的目录和文件的File对象数组

Properties类

Properties继承于Hashtable,表示一个持久的属性集,属性列表中每个键及其对应值都是一个字符串Properties类被许多Java类使用,例如在获取环境变量时,它就作为System.getProperties方法的返回值。

已知直接子类:

Provider

方法

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值