持久设备中存储数据都是以二进制的形式来存储的,java为我们提供了字节流来以字节的方式读取,或者以字节的方式向设备中写数据。
inputstream:字节输入流。outputstream:字节输出流。
字节输出流对象
查看api得知OutputStream类是字节输出流的超类。它定义了字节输出数据的基本功能。
使用java流对象操作持久设备上的数据就要让java程序与持久设备建立连接通道。然后提供java中提供的流对象来写数据,操作完之后一定要断开通道。
其中方法介绍:
close() 关闭Java程序和持久设备之间的连接
flush() 刷新,目的就是把Java程序中的数据刷到持久设备上。
write(byte[] b) 把b这个字节数组中的数据写到指定的持久设备上。
write(byte[] b, int off, int len) 把b字节数组中的数据,从off位置开始写,共计写出len个字节
write(int b) 调用一次这个方法,写出一个字节数据。
通过查找api得知OutputStream类是一个抽象类,想完成输出的一些功能可以使用它的子类FileOutputStream类
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
FileOutputStream fs = new FileOutputStream("e:/lishuais.java");
fs.write(88);
String s = "好好学习,天天向上";
//使用字节流输出字符串要将字符串转化成字节类型的。
byte[] b = s.getBytes();
fs.write(b);
fs.close();
}
}
追加和换行功能:
由于每次创建同名的文件就会对旧文件覆盖,这里在创建FileOutputStream后根据文件后的boolean值来决定是否进行追加。
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) throws IOException {
FileOutputStream fs = new FileOutputStream("e:/lishuais.java", true);
String s = "这是追加的数据" + LINE_SEPARATOR;
byte[] b = s.getBytes();
fs.write(b);
fs.close();
}
}
网友评论