Java 流操作类-介绍

概念:
流是字节序列的抽象概念。
是指数据传输时的形态。
是IO设备进行读取和写入操作的方式。
分节点流和过滤流

  


输入流:连续【读取】字节的对象。
InputStream类 描述了所有输入流的通用方法。

输出流:连续【写入】字节的对象。
OutputStream类 描述了所有输出流的通用方法。

 

InputStream类(抽象类)读取

OutputStream类(抽象类)写入

int read()

读取流

Void write(int b)

写入流

Int read(byte[] b)

读取字节流

Void write(byte[] b)

所有的字节写入流

Int read(byte[] b,int off, int len)

off下标开始读len个。

Void write(byte[] b,int off, int len)

off下标开始写len个。

long skip(long n)

跳过n个读取。包装类中使用

void flush()

内存缓冲区的内容清空,并输出到目标IO上。

int available()

返回当前流字可读节数。检查是否有流。占cpu资源。读取尽可能多的数据。可用户判定

 

 

Void mark(int adlimit)

建立标记,当前位置开始最多能读取多少个字节。

包装类中使用

 

 

void reset()

指针回到标记处。配合mark使用。

 

 

boolean markSupported()

是否支持 mark,reset方法

 

 

void close()

关闭流

 

 

void flush()

内存缓冲区清空,并输出到目标IO上。

 

 

为什么要使用close();垃圾回收器 只回收类识别对象。不会管理程序生成的资源。

 

创建磁盘文件的输入流和输出流:

对字节操作

对字符操作

FileInputStream

FileOutputStream

FileReader

FileWriter

文件存在时才能读

如果文件存在,将覆盖。不能指定被其他程序打开的文件。否则会出错。

专门用于读写文本数据。

用于简化对字符串的输入编出编程。

ReaderWriter字符流类的子类

读取

写入

读取

写入

 注意

FileWriterwrite方法不会真正写入。需要执行close方法才会被写入。

FileOutputStreamwrite方法会默认调用flush()写入

 

 

DEMO:

import java.io.*;
class StreamDemo{
 public static void main(String[] args) throws Exception{
  //字节写入操作
  FileOutputStream out=new FileOutputStream("good.txt");
  out.write("very good".getBytes());
  out.close();
  

  //字节读取操作
  byte[] buf=new byte[1024];
  File f=new File("good.txt");
  FileInputStream in=new FileInputStream(f);
      int len= in.read(buf);
  System.out.println(new String(buf,0,len));
  in.close();

  //字符写入操作
  FileWriter out2=new FileWriter("goodwriter.txt");
  out2.write("very good writer");
  out2.close();//执行它才会真正写入。
  
  //字符读取操作
  char[] buf2=new char[1024]; 
  FileReader in2=new FileReader("goodwriter.txt");
      int len2= in2.read(buf2);
  System.out.println(new String(buf2,0,len2));
 }

}

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值