首先回顾下
字节输出流操作步骤:
A:创建字节输出流对象
B:调用write()方法
C:释放资源
创建字节流输出对象
FileOutputStream fos = new FileOutputStream("fos.txt");
先介绍字节输出流的write方法:
public void write(int b):写一个字节
public void write(byte[] b):写一个字节数组
public void write(byte[] b,int off,int len):写一个字节数组的一部分
1、public void write(int b):写一个字节
fos.write(97); //结果是a
97 -- 底层二进制数据 -- 通过记事本打开 -- 找97对应的字符值 -- a7
此时若想输出97,只能这样:后面会有直接输出97之类的数字的方法
fos.write(57); //
fos.write(55); //
2、public void write(byte[] b):写一个字节数组
byte[] bys={97,98,99,100,101};
//byte[] bys={'a','b','c','d','e'}; //结果一样的
3、public void write(byte[] b,int off,int len):写一个字节数组的一部分
fos.write(bys,1,3); //txt里面的文本是:abcdebcd
字节输出流的write方法介绍完毕,释放资源
fos.close();
字节输出流写出数据实现 换行 和 追加写入
追加写入:每运行一次程序,那么就会在文本里面再次添加程序中要写入的内容
创建字节流输出对象
FileOutputStream fos = new FileOutputStream("fos.txt");
1、如何实现数据的换行?
再写出的数据后面加换号符号就可以了。
注意:不同的系统针对不同的换行符号识别是不一样的:
windows:\r\n
linux:\n
Mac:\r
而一些常见的个高级记事本,是可以识别任意换行符号的。
这样子的话,跨平台会容易出错,所以后面会有方法让程序自动识别系统来改变换号符号。
1、写入数据,实现换行
for (int x = 0; x < 10; x++) {
fos.write(("hello" + x).getBytes());
fos.write("\r\n".getBytes());
}
2、如何实现数据的追加写入?
用构造方法带第二个参数是true的情况即可,也就是说创建字节流对象的时候要进行定义
FileOutputStream fos = new FileOutputStream("fos3.txt", true);