一、创建输出流对象表示的文件三种方式
方法一:
FileOutputStream fos = new FileOutputStream("fos.txt",true);//最简便
方法二:
FileOutputStream fos = new FileOutputStream(new File("fos.txt"));
方法三;
File f = new File("fos.txt");
FileOutputStream fos = new FileOutputStream(f);
二、字节流写入数据的四种方式
void write (int b)将指定字节写入文件,一次写一个
void write (byte[] b)将b.length字节从字节数组写入此文件输出流,一次写一个字节数组
void write (byte[] b,int off,int len)将len字节从指定off偏移量开始写入文件
byte[] getBytes()使用平台的默认字符集将该Stirng编码为一系列字节,将结果返回新的字节数组中
三、举几个例子
import java.io.*;
public class FileDemo_06 {
public static void main(String[] args) throws IOException {
//创建输出流对象表示的文件
//方法一:
FileOutputStream fos = new FileOutputStream("fos.txt");//最简便
//方法二:
//FileOutputStream fos = new FileOutputStream(new File("fos.txt"));
//方法三;
//File f = new File("fos.txt");
//FileOutputStream fos = new FileOutputStream(f);
//void write (int b)将指定字节写入文件,一次写一个
//void write (byte[] b)将b.length字节从字节数组写入此文件输出流,一次写一个字节数组
//void write (byte[] b,int off,int len)将len字节从指定off偏移量开始写入文件
//void write (int b)将指定字节写入文件,一次写一个
fos.write(97);
fos.write(98);
fos.write(99);
fos.write(100);
fos.write(101);
byte[] b1 = "\n".getBytes();//读入换行,方便观察呀
fos.write(b1);
//void write (byte[] b)将b.length字节从字节数组写入此文件输出流,一次写一个字节数组
byte[] bys = {97,98,99,100,101,102};
fos.write(bys);
byte[] b2 = "\n".getBytes();//读入换行,方便观察呀
fos.write(b2);
//byte[] getBytes()使用平台的默认字符集将该Stirng编码为一系列字节,将结果返回新的字节数组中
byte[] by = "汽车租赁系统4.0\n请输入你的选择:\n".getBytes();
fos.write(by);
fos.write(bys,2,3);//cde
//释放资源,一定要记得
fos.close();
}
}
PS:讨论几个小问题
1、写入文件的的数据都是在同一行连续写入,没有换行
解决办法:使用byte[] getByte()方法,然后在你写入的字符串最后面加上\n
2、每次写入文件都会造成复写,即第二次的内容会覆盖前一次的内容,如何追加写入
解决办法:
FileOutputStream fos = new FileOutputStream("fos.txt",true);
创建输出流对象时,使用上面的构造方法,"true"代表在将字节写入文件的末尾而不是开头