IO流中涉及的构造器及方法总结

一、OutputStream抽象类:

       void close();

       void flush();//刷新,作用是将缓冲区中的数据写进目的地。

       void write(int b);写一个字节

       void write(byte[] b);写一个字节数组

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


   1.OutputStream的子类:FileOutputStream
   构造方法:

       FileInputStream(File file)

       FileInputStream(String path)
PS:所有的输出流,对于指定的路径中的文件若是不存在,都会自动创建。


2.OutputStreamd的子类FilterOutputStream的子类BufferedOutputStream:
常用构造方法

        BufferedOutputStream(OutputStream out)

                创建一个指定字节输出流的缓冲流对象

        BufferedOutputStream(OutputStream out,int size)

                创建一个指定字节输出流的缓冲流对象,并设置缓冲区的大小


写入方法:

   void write(int b):

                        写int数据的低八位,写入缓冲区内

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

                        写指定长度len的字节数组,写入缓冲区  
  PS:缓冲区的默认大小为8192字节,当一次写的字节超出缓冲区大小,会直接写入到文件。


3.OutputStream的子类DataOutputStream:
构造方法:
DataOutputStream(OutputStream os)


常用方法:

      writeByte(int b)

      writeShort(int s) 

      writeInt(int i)

      writeLong(long l)

      writeFloat(float f)

      writeDouble(double d);

      writeChar(int c);

      writeBoolean(boolean b)

      writeUTF(String s);


4.OutputStream的子类ObjectOutputStream:
该类对象使用writeObject(Object obj)方法将对象持久化到硬盘。被序列化的对象应当实现Serializable接口,提供一个long类型的常量serialVersionUID,该常量作为该类对象序列化和反序列化的标识符。不想序列化的成员变量可以在类型前添加transient关键字修饰。


  二、InputStream抽象类: 

       int available():剩余可读字节数

       void close();关闭流

       int read():读取一个字节,存入int的低八位上,范围是0-255

       int read(byte[] b):读取字节存入字节数组b中,返回的是读取的有效字节个数。

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

       skip(int n);跳过指定字节数


1.InputStream的子类FileInputStream:

       FileOutputStream(File file)

       FileOutputStream(File file,boolean append)

       FileOutputStream(String pathname)

       FileOutputStream(String pathname,boolean append)


2.InputStream的子类FilterInputStream的子类BufferedInputStream:
构造方法:

BufferedInputStream(InputStream is);

BufferedInputStream(InputStream is,int size);


    常用方法:

int read(byte[] bs)

int read(byte[] bs,int off,int len)    
PS: 当一次性读取的字节超出缓冲区大小。不使用缓冲区,直接从文件里读。


3.InputStram的子类DataInputStream:


构造方法:
DataInputStream(InputStream in) 


常用方法:

read(byte[] b)   

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

boolean readBoolean()  

byte readByte()  

char readChar()   

double readDouble()   

float readFloat() 

int readInt() 

String readLine()  

long readLong()

short readShort() 

String readUTF() 

static String readUTF(DataInput in)  
PS:使用此流进行读取文件时,应当严格按照存入顺序一一读取。


4.InputStream的子类ObjectInputStream:readobject()


字符流:
一、Writer抽象类:

void close():关闭 

void write(char[] cbuf):写一个字符数组

void write(char[] cbuf, int off, int len)写一个字符数组的一部分 

write(int c):写一个字符

write(String str):写一串字符

write(String str, int off, int len) 


1Writer的子类OutputStreamWriter:转化流,把字符流变成字节流
构造方法:

OutputStreamWriter(OutputStream out)

  // 创建一个指定字节输出流的字符输出流对象,采用的是系统默认的编码集 

OutputStreamWriter(OutputStream out, Charset cs) 

OutputStreamWriter(OutputStream out, CharsetEncoder enc) 

OutputStreamWriter(OutputStream out, String charsetName)


2.Writer的子类BufferedWriter:
构造方法:

BufferedWriter(Writer out) //创建使用默认大小的输出缓冲区的缓冲字符输出流。  

BufferedWriter(Writer out, int sz) //创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。
特有方法:

newLine();

//写一行行分隔符。行分隔符字符串由系统属性line.separator定义,并不一定是单个换行符('\n')字符。
3:Writer的子类FileWriter:
该类提供了一个缓冲区。所有的方法都来自Writer类,没有自己的独有方法。


4.Writer的子类PrintWriter:
构造方法:

PrintWriter(File file) 

PrintWriter(OutputStream out)

PrintWriter(OutputStream out, boolean autoFlush)        

PrintWriter(String fileName) 

PrintWriter(Writer out) 

PrintWriter(Writer out, boolean autoFlush) 

上述构造器,有第二个参数的,可以设置为true,表示行自动刷新,而且只能和println方法一起生效。


常用方法:

void print(boolean b) 打印布尔值。  

void print(char c) 打印一个字符  

void print(char[] s) 打印字符数组。  

void print(double d) 打印双精度浮点数。  

void print(float f) 打印浮点数。  

void print(int i) 打印一个整数。  

void print(long l) 打印一个长整数。  

void print(Object obj) 打印一个对象。  

void print(String s)  打印字符串。 

void println() 通过写入行分隔符字符串来终止当前行。  

void println(boolean x) 打印一个布尔值,然后终止该行。  

void println(char x) 打印一个字符,然后终止该行。  

void println(char[] x) 打印字符数组,然后终止行。  

void println(double x) 打印双精度浮点数,然后终止行。  

void println(float x) 打印一个浮点数,然后终止该行。  

void println(int x) 打印一个整数,然后终止该行。  

void println(long x) 打印一个长整型,然后终止行。  

void println(Object x) 打印一个对象,然后终止该行。  

void println(String x) 打印一个字符串,然后终止行。  
 
二、Reader抽象类:

int read():读一个字符,存储到int的低16位

int read(char[] cbuf):将数据读进字符数组中,返回的是读取的有效字符个数

int read(char[] cbuf, int off, int len) 将字符读入数组的一部分。
1.Reader的子类InputStreamReader:转化流,把字节流转换成字符流
构造方法:

//创建一个使用默认字符集的InputStreamReader。  

InputStreamReader(InputStream in)

//创建一个使用指定字符集的InputStreamReader。  

InputStreamReader(InputStream in, Charset cs) 

InputStreamReader(InputStream in, CharsetDecoder dec) 

InputStreamReader(InputStream in, String charsetName) 


2.Reader的子类BufferedReader:
构造方法:

BufferedReader(Reader in) 

//创建使用默认大小的输入缓冲区的缓冲字符输入流。  

BufferedReader(Reader in, int sz) 

//创建使用指定大小的输入缓冲区的缓冲字符输入流。
特有方法:

//读一行字符串,读至换行符号为止,返回的数据不包含换行符当返回值为null时,表示读至文件末尾

String readLine():
3.Reader的子类FileReader: 
该类提供了一个缓冲区。所有的方法都来自Writer类,没有自己的独有方法。一般都是用BufferedReader来读取纯文本数据。
System.in默认代表的是键盘输入流(InputStream),可以通过System.setIn(InputStream in)设置输入流对象。
System.out默认代表控制台输出流(PrintStream),可以通过System.setOut(PrintStream out)设置输出流对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值