IO流体系(FiletOutputStream)
书写步骤:
1.创建字节输出流对象
细节1:参数是字符串表示的路径或者是File对象都是可以的
细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的。
细节3:如果文件已经存在,则会清空文件
2.写数据
细节:write方法的参数是整数,但是实际上写到本地文件中的是整数在ASCII上对应的字符
3.释放资源
每次使用完之后都要释放资源
提前创建好a.txt的文件
package myio;
import java.io.FileOutputStream;
import java.io.IOException;
public class IoDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\你自己的路径\\a.txt");
fos.write(97);
fos.close();
}
}
运行之后就可以看见a.txt里面多了个a
一次写多个数据
一次写一个字节数组数据
package myio;
import java.io.FileOutputStream;
import java.io.IOException;
public class IoDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\Web\\API\\src\\myio\\a.txt");
// fos.write(97);
byte[] bytes = {97,98,99,100,101};
fos.write(bytes);
fos.close();
}
}
写数组中的部分数据
package myio;
import java.io.FileOutputStream;
import java.io.IOException;
public class IoDemo1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\Web\\API\\src\\myio\\a.txt");
// fos.write(97);
byte[] bytes = {97,98,99,100,101};
// fos.write(bytes);
fos.write(bytes,1,3);
fos.close();
}
}
换行写
1.再次写出一个换行符就可以了
windows:\r\n Linux:\n Mat:\r
细节:
在windows操作系统当中,java对回车换行进行了优化。虽然完整的是\r\n,但是我们写其中一个\r或者\n,java也可以实现换行,因为java在底层会补全。
建议:不要省略,还是写全了
package myio;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class IoDemo2 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\Web\\API\\src\\myio\\a.txt");
String str = "shiyifangjia";
byte[] bytes = str.getBytes();
// System.out.println(Arrays.toString(bytes));
fos.write(bytes);
//换行
String wrap = "\r\n";
byte[] bytes1 = wrap.getBytes();
fos.write(bytes1);
String str2 = "666";
byte[] bytes2 = str2.getBytes();
fos.write(bytes2);
fos.close();
}
}
续写
如果想要续写,打开续写开关即可
开关位置:创建对象的第二个参数
默认false:表示关闭续写,此时创建对象会清空文件
手动传递true:表示打开续写,此时创建对象不会清空文件