IO流的方法参数及构造参数

IO流 注意点

字节流InputStream/OutputStream

基本流

1.1 构造

输出流构造
  • public FileOutputStream(File file):创建文件输出流以写入由指定的 File对象表示的文件。
  • public FileOutputStream(String name): 创建文件输出流以指定的名称写入文件。
  • FileOutputStream(File file, boolean append):追加
输入流构造
  • FileInputStream(File file)
  • FileInputStream(String name)

1.2 输出流 write()方法

  • write(int b)

  • write(byte[] b)

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

  • write(int b, boolean append)

1.3 输入流 read()方法

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

缓冲流

1.1构造

输入流构造
  • BufferedInputStream(InputStream in)
  • BufferedInputStream(InputStream in, int size)
输出流构造
  • BufferedOutputStream(OutputStream out)
  • BufferedOutputStream(OutputStream out, int size)

1.2 输出流 write()方法

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

1.3 输入流 read()方法

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

序列化 对象流

1.1构造

输入流构造
  • ObjectInputStream(InputStream in)
输出流构造
  • ObjectOutputStream(OutputStream out)

1.2 输出流 write()方法

  • writeObject(Object obj)

1.3 输入流 read()方法

  • Object readObject()

1.4 对象实现序列化

  • 对象类 implements Serializable

随机访问流 RandomAccessFile

1.1构造

构造
  • RandomAccessFile(File file, String mode)
  • RandomAccessFile(String name, String mode)

mode --> r(只读)、rw(可读写)

1.2 输出流 write()方法

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

1.3 输入流 read()方法

  • int read(byte b[])
  • int read()

1.4 设置起始位置

  • seek(long pos)

字符流 Reader/Writer

基本流

2.1 构造

输入流构造
  • FileReader(File file)
  • FileReader(String fileName)
输出流构造
  • FileWriter(File file)
  • FileWriter(String fileName)

2.2 输出流 write()方法

  • write(int c)
  • write(char[] cbuf)
  • write(char[] cbuf, int off, int len)
  • write(String str)
  • write(String str, int off, int len)

2.3 输入流 read()方法

  • int read()
  • int read(char[] cbuf) 缓冲流没有
  • int read(char cbuf[], int off, int len)

缓冲流

2.1构造

输入流构造
  • BufferedReader(Reader in)
  • BufferedReader(Reader in, int sz)
输出流构造
  • BufferedWriter(Writer out)
  • BufferedWriter(Writer out, int sz)

2.2 输出流 write()方法

  • write(String str)
  • write(String str, int off, int len)
  • write(char cbuf[])
  • write(char cbuf[], int off, int len)
  • write(int c)
  • **newLine() ** 基本流没有

2.3 输入流 read()方法

  • int read()
  • read(char[] cbuf, int off, int len)
  • String readLine(boolean ignoreLF) 基本流没有

转换流

2.1构造

输入流构造
  • InputStreamReader(InputStream in)

  • InputStreamReader(InputStream in, String charsetName)

输出流构造
  • OutputStreamWriter(OutputStream in)

  • OutputStreamWriter(OutputStream out, String charsetName)

2.2 输出流 write()方法

  • write(int c)
  • write(char[] cbuf, int off, int len)
  • write(String str, int off, int len)

2.3 输入流 read()方法

  • int read()
  • int read(char[] cbuf) 缓冲流没有
  • read(char cbuf[], int off, int len)

注意

当创建流对象的时候,输入输出流的文件对象不能是同一个文件!

例如:

BufferedReader br= new BufferedReader(new FileReader(“text.txt”));

BufferedWriter br = new BufferedWriter (new FileWriter(“text.txt”));

!!这样获取输出流对象后,文件内容会直接清空!!

若需要在同一个文件里输入输出,可以在while()中读取完数据后

再创建输出流。

BufferedReader br = new BufferedReader(new FileReader("test5.txt"));
BufferedWriter bw = null;

String str;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
    sb.append(str.substring(0,10).toUpperCase());
    sb.append(str.substring(10,str.length()-10));
    for(int i = 0;i < 10;i++){
        char[] chars = str.substring(str.length() - 10).toCharArray();
        int num = chars[i];
        sb.append(num);
    }
}
bw = new BufferedWriter(new FileWriter("test5.txt"));
bw.write(sb.toString());
bw.close();
发布了12 篇原创文章 · 获赞 0 · 访问量 55

猜你喜欢

转载自blog.csdn.net/DavinDeng/article/details/104918307