字节输出流FileOutputStream
操作本地文件的字节输出流,可以把程序中的数据写到本地文件中
基本用法
书写步骤
- 创建字节输出流对象
- 记得抛出编译时期异常
FileOutputStream fos = new FileOutputStream("指定文件的路径");
- 写数据
- 记得抛出异常
fos.write(97);
- 释放资源
- 记得抛出异常
fos.close();
细节
- 创建字节输出流对象
- 参数是字符串表示的路径或者是File对象都是可以的
- 如果文件不存在会创建一个新的空文件,但是要保证父级路径是存在的
- 如果文件已经存在,则会清空文件
- 写数据
- write方法的参数是整数,但是实际上写到本地文件的是整数在ASCII上对应的字符
- 释放资源
- 每次使用完流后都要释放资源
写出数据的三种方式
| 方法名称 | 说明 |
|---|---|
| void write(int b) | 一次写一个字节数据 |
| void write(byte[] b) | 一次写一个字节数组数据 |
| void write(byte[] b, int off, int len) | 一次写一个字节数组的部分数据 |
- void write(byte[] b, int off, int len)方法细节
- 参数一:数组
- 参数二:起始索引
- 参数三:个数
换行
-
再次写出一个换行符就行了
- window:
\r\n - Linux:
\n - Mac:
\r
- window:
-
在windows操作系统当中,java对回车换行进行了优化,虽然完整的是
\r\n,但是我们写其中一个\r或者\n,java也可以实现换行,因为java在底层会补全 -
建议:不要省略
FileOutputSream fos = new FileOutputStream("myio\\a.txt");
String str1 = "helloworld";
byte[] bytes1 = str1.getBytes();
fos.write(bytes1);
String wrap = "\r\n";
byte[] bytes2 = wrap.getBytes();
fos.write(bytes2);
String str2 = "666";
byte[] bytes3 = str2.getBytes();
fos.write(bytes3);
fos.close();
续写
-
在构造方法中其实有两个参数,第二个参数是布尔类型的,表示续写开关
-
如果想要续写,打开续写开关即可
-
默认false:表示关闭续写开关,此时创建对象会清空文件
-
手动传递true:表示打开续写,此时创建对象不会清空文件