A类,使用其 实例化的子类
public class OutputStreamDemo {
// 字节输出流的抽象父类
/*
* 1.new流对象
* 2.write
* 3.close
*/
public static void main(String[] argStrings) {
/*内部方法
* write(int b)
* write(byte[] b)
* write(byte[] b,int start,int end)
*/
/*
* 子类
* ByteArrayOutputStream
* FileOutputStream
*/
FileOutputStreamDemo.func();
}
static class FileOutputStreamDemo{
public static void func() {
try {
// 没有文件时,可以同时执行创建
FileOutputStream fileOutputStream=new FileOutputStream("e:\\fileOut.txt");
// 写字节
fileOutputStream.write(100);
// 写字符串 getBytes()
fileOutputStream.write("dddd".getBytes());
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void func2() {
// 追加与换行
// 追加:文件输出流FileOutputStream的构造重载,设定第二个参数位true
File file=new File("e:\\fileOut.txt");
try {
FileOutputStream fileOutputStream=new FileOutputStream(file,true);
// 换行:\r\n
fileOutputStream.write("333\r\n".getBytes());
fileOutputStream.write("333".getBytes());
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void func3() {
// 流对象异常处理 标准写法
File file=new File("e:\\fileOut.txt");
FileOutputStream fileOutputStream=null;
try {
fileOutputStream=new FileOutputStream(file);
fileOutputStream.write("100".getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// 抛出运行时异常,停止程序
throw new RuntimeException("写入失败");
} finally {
try {
// 预防 输出流对象创建失败无需关闭
if (fileOutputStream!=null) {
fileOutputStream.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}