字节流之文件输出流FileOutputStream
1. FileOutputStream 实现了向文件中写出byte数据的方法
例程
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileOutputStream out = new FileOutputStream("demo/out.dat");//存在,删除后创建;不存在,创建
out.write('A');//A字节的低八位
out.write('B');
int a = 10;//write只能写低八位,一个整数需要写四次,每次八位
out.write(a>>>24);
out.write(a>>>6);
out.write(a>>>8);
out.write(a);
byte[] gbk = "中国".getBytes("gbk");
out.write(gbk);
out.close();
IOUtil.printHex("demo/out.dat");
}
- DataOutputStream/DataInputStream
对"流"功能的扩展,可以更加方面的读取int,long,字符等类型数据
DataOutputStream的方法:writeInt()/writeDouble()/writeUTF()
DataOutputStream:
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
String file = "demo/dos.dat";
DataOutputStream dos = new DataOutputStream(
new FileOutputStream(file));//嵌套
dos.write(10);
dos.write(-10);
dos.writeLong(10l);
dos.writeDouble(10.4);
dos.writeUTF("中国");
dos.writeChars("中国");//以htf-16e编码写出
dos.close();
IOUtil.printHex(file);
}
DataInputStream
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
String file = "demo/dos.bat";
IOUtil.printHex(file);
DataInputStream dis = new DataInputStream(
new FileInputStream(file));
int i = dis.readInt();
System.out.println(i);
i = dis.readInt();
System.out.println(i);
long l = dis.readLong();
System.out.println(l);
double d = dis.readDouble();
System.out.println(d);
String s = dis.readUTF();
System.out.println(s);
dis.close();
}