学习笔记,仅供参考
IO流
IO流的概述及其分类
- 概念
- IO流用来处理设备之间的数据传输
- Java对数据的操作是通过流的方式
- Java用于操作流的类都在IO包中
- 流按流向分为两种:输入流,输出流。
- 流按操作类型分为两种:
- 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的
- 字符流 : 字符流只能操作纯字符数据。
- IO流常用父类
- 字节流的抽象父类:
- InputStream
- OutputStream
- 字符流的抽象父类:
- Reader
- Writer
- 字节流的抽象父类:
- IO程序书写
- 使用前,导入IO包中的类
- 使用时,进行IO异常处理
- 使用后,释放资源
FileInputStream
构造方法
FileInputStream(File file)
通过打开一个到实际文件的连接来创建一个 FileInputStream
,该文件通过文件系统中的 File
对象 file
指定.
FileInputStream(String name)
通过打开一个到实际文件的连接来创建一个 FileInputStream
,该文件通过文件系统中的路径名 name
指定。
成员方法
- read
public int read()
从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。 返回值为下一个数据字节,如果已到达文件末尾,则返回 -1。
举个例子
当前项目下创建yyy.txt:
abcde
读取yyy.txt文件内的全部数据:
package com.guiyang.bean;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Demo1_FileInputStream {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("yyy.txt");
//创建流对象
int b;
while ((b = fis.read()) != -1) {
System.out.println(b);
}
fis.close();
}
}
输出:
97
98
99
100
101
FileOutputStream
构造方法
FileOutputStream(File file)
创建一个向指定 File
对象表示的文件中写入数据的文件输出流。
FileOutputStream(String name)
创建一个向具有指定名称的文件中写入数据的输出文件流。
成员方法
- write
public void write(byte[] b)
将 b.length 个字节从指定 byte 数组写入此文件输出流中。
public void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
举个例子
- 创建新文件,并写入内容
创建xxx.txt文件并写入abc:
package com.guiyang.bean;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo2_FileOutputStream {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("xxx.txt");
fos.write(97);
fos.write(98);
fos.write(99);
fos.close();
}
}
xxx.txt内输出:
abc
- 在已有文件内追加内容
在xxx.txt中追加def:
package com.guiyang.bean;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo2_FileOutputStream {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("xxx.txt", true);
fos.write(100);
fos.write(101);
fos.write(102);
fos.close();
}
}
如果要在原文件内追加内容,就在构造方法的第2个参数传入true;如果不传入true,就会清空原文件,并写入新内容。
xxx.txt文件:
abcdef