架构图:

架构图2:

代码1:
package com.wkcto.chapter06.fileinputstream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* 异常处理
*
*/
public class Test05 {
public static void main(String[] args) {
// readData(); //以字节为单位读取文件内容, 异常处理, 手动关闭流
readData2(); //以字节数组为单位读取文件内容, 异常处理, 自动 关闭流, 从JDK7开始
}
private static void readData2() {
try (
FileInputStream fis = new FileInputStream("d:/abc.txt");
) {
byte [] bytes = new byte[8]; //字符数组一般情况下是1024的偶数倍
int len = fis.read(bytes);
while( len != -1){
System.out.print( new String(bytes, 0 ,len));
len = fis.read(bytes);
}
} catch (Exception e) {
}
}
private static void readData() {
FileInputStream fis = null;
try {
fis = new FileInputStream("d:/abc.txt");
int cc = fis.read();
while( cc != -1 ){
System.out.print( (char)cc );
cc = fis.read();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if ( fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
示例代码2:
package com.wkcto.chapter06.fileinputstream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 演示FileOutputStream, 把程序中的数据保存到文件中
*
*
*/
public class Test06 {
public static void main(String[] args) throws IOException {
//1)建立当前程序与文件之间的流通道, 如果文件不存在,会创建一个新的文件,如果文件已存在,会覆盖原来的内容
// FileOutputStream fos = new FileOutputStream("d:/def.txt");
//1)建立当前程序与文件之间的流通道, 如果文件不存在,会创建一个新的文件,如果文件已存在,原文件后面追加新的内容
FileOutputStream fos = new FileOutputStream("d:/def.txt", true); //以追加的方式打开文件
//2)把数据保存到文件中
//2.1 可以一次保存一个字节
fos.write(97);
fos.write(98);
fos.write(99);
//2.2 可以一次保存一个字节数组
byte[]bytes = "wkcto is a NB Website".getBytes();
fos.write(bytes);
//2.3 换行 , 在Windows操作系统中,换行需要\r\n两个 字符
fos.write('\r');
fos.write('\n');
//2.4 保存字节数组中部分字节
fos.write(bytes, 0, 5);
//3)关闭流通道
fos.close();
}
}
来源:https://www.cnblogs.com/Tpf386/p/11154217.html