IO 流

一、IO 流的体系结构

  • 字节流:万能流,但是不能处理纯文本文件,因为会乱码。
    抽象类
    InputStream、OutputStream
    子类
    FileInputStream、FileOutputStream
  • 字符流:处理纯文本文件
    抽象类
    Reader、Writer
    子类
    FileReader、FileWriter

二、FileOutputStream 字节输出流

1. 构造方法

FileOutputStream(String name):输出流关联文件,参数是文件路径字符串。文件不存在自动创建。
FileOutputStream(File file) :输出流关联文件,参数是File对象
FileOutputStream(String name, boolean append):第二个参数,追加写入的开关
FileOutputStream(File file, boolean append) :第二个参数,追加写入的开关

2. 成员方法

write(int i):写出一个字节
write(byte[] bys):写出一个字节数组
write(byte[] bys, int off, int len):写出字节数组的一部分。开始索引,长度

FileOutputStream fos = new FileOutputStream("d:\\IoTest\\A.txt");
fos.write(97);//文件中显示:a

byte[] bytes = {
   97, 98, 99};
fos.write(bytes);//文件中显示:abc

fos.write("你好".getBytes());//文件中显示:你好

字符串转字节数组:字符串.getBytes()

注意:如果文件不存在,则自动创建;如果文件存在,先清空文件,再写操作。

如果追加写

FileOutputStream fos = new FileOutputStream("d:\\IoTest\\A.txt", true);

3.关流

  • jdk7 之前
FileOutputStream fos = null;
try {
   
	fos = new FileOutputStream("d:\\IoTest\\A.txt", true);
	//System.out.println(10/0);
	fos.write("abc".getBytes());
} catch (IOException e) {
   
	e.printStackTrace();
} finally {
   
	if (fos != null) {
   
		try {
   
			fos.close();
		} catch (IOException e) {
   
			e.printStackTrace();
		}
	}
}
  • jdk7 之后
try (FileOutputStream fos = new FileOutputStream("d:\\IoTest\\A.txt", true);) {
   
	fos.write("abcef".getBytes());
} catch (IOException e) {
   
	e.printStackTrace();
}

try(需要调用close方法的对象){}
不是随便的类,需要实现AutoCloseable的close()方法。

三、FileInputStream 字节输入流

构造方法

FileInputStream(String name):输入流关联文件,参数是文件路径字符串。文件不存在会报错!
FileInputStream(File file) :输入流关联文件,参数是File对象

注意事项:
文件不存在,会抛出FileNotFoundException 异常。(文件夹,拒绝访问)

成员方法

read():读取一个字节并返回,如果达到文件结尾返回-1
read(byte[] b):将读取到的字节,放入数组中,返回有效的字节长度,如果到达文件结尾返回-1

文件内容:ab

FileInputStream fis = new FileInputStream("D:\\IoTest\\A.txt");
        
int i = fis.read();
System.out.println(i);//97

int i1 = fis.read();
System.out.println(i1);//98

int i2 = fis.read();
System.out.println(i2);//-1

int i3 = fis.read();
System.out.println(i3);//-1

fis.close();

四、字节缓冲流

五、FileReader

六、FileWriter

相关推荐

  1. IO

    2023-12-12 08:16:04       69 阅读
  2. IO——其他

    2023-12-12 08:16:04       32 阅读
  3. IO-字符

    2023-12-12 08:16:04       35 阅读
  4. IO(字符)

    2023-12-12 08:16:04       32 阅读
  5. ios

    2023-12-12 08:16:04       73 阅读
  6. IO-处理之——缓冲

    2023-12-12 08:16:04       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 08:16:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 08:16:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 08:16:04       82 阅读
  4. Python语言-面向对象

    2023-12-12 08:16:04       91 阅读

热门阅读

  1. 第13节:Vue3 声明反应状态ref()

    2023-12-12 08:16:04       68 阅读
  2. 八大排序算法【上】

    2023-12-12 08:16:04       56 阅读
  3. Vue3.3.4中watch无法监测props的更改

    2023-12-12 08:16:04       54 阅读
  4. 鸿蒙(HarmonyOS)应用开发——应用通知

    2023-12-12 08:16:04       70 阅读
  5. 四种数据库执行脚本文件导入数据的方式

    2023-12-12 08:16:04       55 阅读
  6. 上确界(supremum)

    2023-12-12 08:16:04       56 阅读
  7. 解决IDEA配置gitignore不生效

    2023-12-12 08:16:04       60 阅读