IO流之字节输出流OutputStream
package cn.zj.io;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Io {
public static void main(String[] args) throws IOException {
// 创建字节输出流对象
OutputStream os = new FileOutputStream("d:\\work\\abc\\1.txt");
// 一次写一个字节
os.write(100); // d
// 一次写一个字节数组
byte[] bytes = { 97, 98, 99, 100 };
os.write(bytes); //abcd
//一次写字节数组的一部分
os.write(bytes, 2, 2); //cd
//使用getBytes
os.write("hellowold".getBytes()); //hellowold
//关闭资源
os.close();
}
}
1、OutputStream os = new FileOutputStream("d:\\work\\abc\\1.txt")
其中,在OutputStream os = new FileOutputStream("d:\\work\\abc\\1.txt")时,当存在"1.txt"文件时,创建一个空的文件并覆盖原文件;当不存在"1.txt"文件时,创建一个新的文件。
2、os.write(100)
os.write(100),显示在文件中数据为"d";在java应用程序中,使用字节输出流,当写的数据为100时,先将100转换为二进制的字节0和1,并将二进制字节写入"1.txt"文件中,当打开文件时,不会看到二进制字节,而是根据ASCII码表自动转化为对应的字符,显示为d。
3、关闭资源
IO流对象一般本身都不具备读写功能,调用操作系统的读写功能,当调用完操作系统的读写功能后,需要释放资源。
当不关闭资源,程序一直占用系统资源,那么文件就删不掉。
1)
package cn.zj.io;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Io {
public static void main(String[] args) throws IOException {
// 创建字节输出流对象
OutputStream os = new FileOutputStream("d:\\work\\abc\\1.txt");
//使用getBytes
os.write("hellowold".getBytes()); //hellowold
//关闭资源
//os.close();
}
}
程序运行后,文件"1.txt"能够删掉,这是因为虽然没有关闭资源,但是程序已经结束了
2)
package cn.zj.io;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Io {
public static void main(String[] args) throws IOException {
// 创建字节输出流对象
OutputStream os = new FileOutputStream("d:\\work\\abc\\1.txt");
//使用getBytes
os.write("hellowold".getBytes()); //hellowold
//关闭资源
//os.close();
while(true){
}
}
}
没有释放资源且程序没有关闭,所以"1.txt"不能够删掉。
3)
package cn.zj.io;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class Io {
public static void main(String[] args) throws IOException {
// 创建字节输出流对象
OutputStream os = new FileOutputStream("d:\\work\\abc\\1.txt");
//使用getBytes
os.write("hellowold".getBytes()); //hellowold
//关闭资源
os.close();
while(true){
}
}
}
虽然程序没有删除,但是资源已经释放,所以可以删掉"1.txt"文件