IO流

5 篇文章 0 订阅
5 篇文章 0 订阅

File类

java.io.File类,代表硬盘上的一个文件或者文件夹, java中文件路径的表示方式c:\suns.txt、c:/sun.txt
构造方法 : File类没有无参构造方法
File(String pathname)
File(String parent, String child)
File(File parent, String child)
File类的常用方法
createNewFile():boolean 当且仅当具有该名称的文件不存在时,原地创建一个由该抽象路径名命名的新的空文件。
mkdir() / mkdirs():boolean 创建由此抽象路径名命名的目录。
delete() :boolean 删除由此抽象路径名表示的文件或目录。
deleteOnExit():boolean 请求在虚拟机终止时删除由此抽象路径名表示的文件或目录。
exists() :boolean 测试此抽象路径名表示的文件或目录是否存在。
isFile() :boolean 测试此抽象路径名表示的文件是否为普通文件。
isDirectory() :boolean 测试此抽象路径名表示的文件是否为目录。
getPath():String 创建时使用的是相对路径则返回相对路径,反之亦然
getName():String 返回由此抽象路径名表示的文件或目录的名称。
getParent() :String 返回此抽象路径名的父 null的路径名字符串,如果此路径名未命名父目录,则返回null。
getAbsolutePath():String 返回绝对路径
list():String[] 返回目录当前file对象代表的目录下所有文件、文件夹名

字节流

1、概念:传输的数据单位是字节,也意味着字节流能够处理任何一种文件。
2、组成:InputStream类、OutputStream类。
3、FileInputStream(字节输入流,InputStream的直接子类)常用方法
构造方法 FileInputStream(String filename)
构造方法 FileInputStream(File file)
int read() 这里返回值的类型是int,指读取的内容
int read(byte[] buf) 读取内容填充到buf中,返回读取的长度
int read(byte[] b, int off, int len) 从输入流中读取(最大)len个字节,填充到数组b中,从b的off索引处开始填充
close() 关闭流
4、FileOutputStream(字节输出流,OutputStream的直接子类)常用方法
构造方法 FileOutputStream(String path)
构造方法 FileOutputStream(File file)
close()
void write(int v) 将指定的字节写入此文件输出流。
void write(byte[] bs) 将 b.length个字节从指定的字节数组写入此文件输出流。
void write(byte[] bs, int off, int len) 将 len字节从位于偏移量 off的指定字节数组写入此文件输出流。
向文件中追加内容的方式 :FileOutputStream(String path, boolean append)、FileOutputStream(File file, boolean append)

过滤流

1、 过滤流的开发步骤
创建节点流
基于节点流创建过滤流
读/写数据
关闭外层流
2、DataInputStream
构造方法 DataInputStream(InputStream in) 创建使用指定的底层InputStream的DataInputStream。
readXxx();
3、DataOutputStream
构造方法 DataOutputStream(OutputStream out) 创建一个新的数据输出流,以将数据写入指定的底层输出流。
writeXxx();

FileOutputStream fout = new FileOutputStream("pi.dat");
		// 封装过滤流
		DataOutputStream dout = new DataOutputStream(fout);
		// 写数据
		dout.writeByte(3);
		// 关闭外层流
		dout.close();
		FileInputStream fin = new FileInputStream("pi.dat");
		// 封装过滤流
		DataInputStream din = new DataInputStream(fin);
		// 读数据
		byte pi = din.readByte();
		// 关闭外层流
		din.close();
		System.out.println(pi);

4、BufferedInputStream
5、BufferedOutputStream

public static void main(String args[]) throws Exception {
String data = "Hello World";
byte[] bs = data.getBytes();
// 创建节点流
FileOutputStream fout = new FileOutputStream("test.txt");
// 封装过滤流
BufferedOutputStream bout = new BufferedOutputStream(fout);
// 写数据
bout.write(bs);
// 关闭外层流
bout.close(); // bout.flush();
}

对象序列化

1、ObjectStream特点:writeObject()、readObject()
对象序列化:把Java对象转换为字节序列的过程称为对象的序列化。
对象的反序列化:把字节序列恢复为Java对象的过程称为对象的反序列化。
对象序列化需要使对象类实现Serializable接口,如果一个对象的属性又是一个对象,则要求这个属性对象也实现了Serializable接口。transient 关键字标注的属性不会被序列化,静态的属性不会被序列化。
ObjectInputStream
ObjectOutputStream

字符流(Reader、Writer)

1、FileReader(Reader的直接子类)
构造方法 FileReader(String fileName)
close()
int read(char[] cbuf)
2、FileWriter(Writer的直接子类)
构造方法 FileWriter(String fileName)
close()
write(String value)
3、InputStreamReader(Reader的直接子类) 可以把一个字节流转换成一个字符流
构造方法 InputStreamReader(InputStream is)
构造方法 InputStreamReader(InputStream is, String charSet)
int read(char[] cbuf)
4、OutputStreamWriter(Writer的直接子类) 在转换时可以执行编码方式
构造方法 OutputStreamWriter(OutputStream is)
构造方法 OutputStreamWriter(nOuputStream is, String charSet)
write(String value)

字符流过滤流

1、BufferedReader (Reader的直接子类) 提供了缓冲功能,可以一行一行的读取内容
方法:public String readLine() 读一行文字。
2、 完整的字符输入流的开发步骤
创建节点流
利用节点流创建字符流
在字符流的基础上封装过滤流
读/写数据
关闭外层流
3、PrintWriter(Writer的直接子类) 提供了缓冲功能,可以一行一行的输出内容
方法: println(); 通过写入行分隔符字符串来终止当前行。

Properties类

1、该类主要用于读取项目的配置文件,配置文件以.properties结尾的文件和xml文件
构造方法 Properties()
构造方法 Properties(Properties defaults)
常用方法 void load(InputStream inStream) 从输入字节流读取属性列表(键和元素对)。
String getProperty(String key) 使用此属性列表中指定的键搜索属性。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值