Java-IO流

IO流

File 文件或文件夹(☆☆☆☆)

构造方法:
File f = new File(); // 编译报错 没有无参构造
File f = new File(String pathname); //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
File f = new File(String parent, String child) //从父路径名字符串和子路径名字符串创建新的 File实例
File f = new File(File parent, String child) //从父抽象路径名和子路径名字符串创建新的 File实例
成员方法:
创建:
public boolean createNewFile() //当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
public boolean mkdir() //创建由此抽象路径名命名的目录
public boolean mkdirs() //创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
删除:
public boolean delete() //删除由此抽象路径名表示的文件或目录
判断:
public boolean isDirectory() //测试此抽象路径名表示的File是否为目录
public boolean isFile() //测试此抽象路径名表示的File是否为文件
public boolean exists() //测试此抽象路径名表示的File是否存在
获取:
public String getAbsolutePath() //返回此抽象路径名的绝对路径名字符串
public String getPath() //将此抽象路径名转换为路径名字符串
public String getName()  //返回由此抽象路径名表示的文件或目录的名称
public File[] listFiles() //返回此抽象路径名表示的目录中的文件和目录的File对象数组

字节流 (☆☆☆☆☆)

字节输出流(写数据):

构造方法:
FileOutputStream fos = new FileOutputStream("D:\\a.txt") //字节输出流创建对象,如果a.txt 存在 则清空a.txt的内容,不存在则新建一个
FileOutputStream fos = new FileOutputStream("D:\\a.txt",true); //追加写入,不会清空 a.txt的内容 而是在他后面继续写
成员方法:
public void write(int b) //将指定的字节写入此文件输出流   一次写一个字节数据
public void write(byte[] b) //将 b.length字节从指定的字节数组写入此文件输出流  一次写一个字节数组数据
public void write(byte[] b, int off, int len) //将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流   一次写一个字节数组的部分数据
write(\n) newLine 新一行    write(\r) return 返回 --- 把光标返回到行首位置  write(\t)  table键
使用完必须加fos.close

字节输入流(读数据):

构造方法:
FileInputStream fis = new FileInputStream("bytestream\\a.txt"); //文件不存在,那么就直接报错
成员方法:
读取一个字节代码:
public void read()   //一次读一个字节数据
循环读每个字节代码:
FileInputStream fis = new FileInputStream("bytestream\\a.txt");
int read;
while ((read = fis.read())!=-1){
	System.out.println(read);
}
fis.close();
读取一个字节数组代码:
public int read(byte[] bys); // 读字节 存放到 bys数组中 读到个数 返回出来
循环读取每个字节数组代码:
FileOutputStream fos = new FileOutputStream("c.txt");
byte[] bys = new byte[3];
int len;
while ((len = fis.read(bys))!=-1){
	System.out.println(new String(bys,0,len));
}
fis.close();
使用完必须加fis.close

字节缓冲流(☆☆☆☆☆)

构造方法:
BufferedOutputStream(OutputStream out)  //创建字节缓冲输出流对象,()里传一个字节输出流对象
    
BufferedInputStream(InputStream in)  //创建字节缓冲输入流对象,()里传一个字节输入流对象
成员方法:
public void write(int b) //将指定的字节写入此缓冲的输出流
public void write(byte[] b, int off, int len) //将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流
    
public int read() //一次读取一个字节数据
public int read(byte[] b, int off, int len) //一次读取一个字节数组数据
public void close() //关闭此输入流并释放与该流关联的所有系统资源
使用完必须加bos.close和bis.close

字符流:(☆☆☆☆☆)

字符输出流(写数据):

构造方法:
FileWriter(File file) //根据给定的 File 对象构造一个 FileWriter 对象
FileWriter(File file, boolean append) //根据给定的 File 对象构造一个 FileWriter 对象
FileWriter(String fileName) //根据给定的文件名构造一个 FileWriter 对象
FileWriter(String fileName, boolean append) //根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象
成员方法:
void write(int c)   //写一个字符
void write(char[] cbuf)  //写入一个字符数组
void write(char[] cbuf, int off, int len)  //写入字符数组的一部分
void write(String str)  //写一个字符串
void write(String str, int off, int len)  //写一个字符串的一部分
刷新和关闭的方法:
flush()  刷新流,之后还可以继续写数据

close()  关闭流,释放资源,但是在关闭之前会先刷新流。一旦关闭,就不能再写数据

字符输入流(读数据):

构造方法:
FileReader(File file)   //在给定从中读取数据的 File 的情况下创建一个新 FileReader
FileReader(String fileName) //在给定从中读取数据的文件名的情况下创建一个新 FileReader
成员方法:
int read()  //一次读一个字符数据
int read(char[] cbuf)  //一次读一个字符数组数据

字符缓冲流(☆☆☆☆☆)

构造方法:
BufferedWriter(Writer out)  //创建字符缓冲输出流对象,(),传入一个字符输出流对象
BufferedReader(Reader in)  //创建字符缓冲输入流对象,(),传入一个字符输入流对象
特有方法:
BufferedWritervoid newLine()  //写一行行分隔符,行分隔符字符串由系统属性定义,跨平台换行符(回车换行)
 
BufferedReader:
String readLine()  //读一行文字。 结果包含行的内容的字符串,不包括任何行终止字符如果流的结尾已经到达,则为null

转换流(☆☆☆)

构造方法:
InputStreamReader(InputStream in)  //使用默认字符编码创建InputStreamReader对象,()传入new FileInputStream对象
InputStreamReader(InputStream in,String chatset)  //使用指定的字符编码创建InputStreamReader,(fis,"GBK"或其他)

OutputStreamWriter(OutputStream out) // 使用默认字符编码创建OutputStreamWriter对象,()传入new FileOutputStream对象
OutputStreamWriter(OutputStream out,String charset)//使用指定的字符编码创建OutputStreamWriter对象(fos,"GBK"或其他)
    
jdk11以后:
public FileReader(String fileName, Charset cs) //直接在字符输入流()里传参,("path",Charset.forName("GBK"或其他))
public FileWrite(String fileName, Charset cs) //直接在字符输出流()里传参,("path",Charset.forName("GBK"或其他))

对象操作流(☆☆)

序列化流

构造方法:
ObjectOutputStream(OutputStream out) //创建一个写入指定的OutputStream,  (new FileOutputStream())
 对象需要实现  Serializable
序列化对象的方法:
void writeObject(Object obj) // 将指定的对象写入ObjectOutputStream
设置序列号:
private static final long serialVersionUID = 123456L;  //自定义序列号
设置不被序列化属性:
transient :  被这个关键字修饰的内容,是不运行序列化的。
	例:private transient int age; // age属性就不会让你写出到文件中。读出来的studen的age属性值是0;

反序列化流

构造方法:
ObjectInputStream(InputStream in)  //创建从指定的InputStream,  (new FileIntputStream())
反序列化对象的方法:
Object readObject()  //从ObjectInputStream读取一个对象

Properties集合(☆☆☆☆☆)

构造方法:
Properties p = new Properties();  //Properties 不需要有泛型
特有方法:
Object setProperty(String key, String value)  设置集合的键和值,都是String类型,底层调用Hashtable方法put  
String getProperty(String key)  使用此属性列表中指定的键搜索属性  
Set<String> stringPropertyNames()  从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串
Properties和IO流相结合的方法:
void load(Reader reader)  //从输入字符流读取属性列表(键和元素对)
void store(Writer writer, String comments) //将此属性列表(键和元素对)写入此Properties表中,以适合使用load(Reader)方法的格式写入输出字符流
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江東-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值