JavaIO编程的四个步骤:
1、确定源
2、选择流
3、操作:读、写
4、释放资源
已知有一个文本文件1.txt,它的内容是“hello”,通过如下代码来读取这个文件的内容:
/**
* 1、确定源
* 2、选择流
* 3、操作:读、写
* 4、释放资源
*/
public static void main(String[] args){
File src = new File("1.txt");
try {
InputStream is = new FileInputStream(src);
int data1 = is.read();//第一个数据h
int data2 = is.read();//第二个数据e
int data3 = is.read();//第三个数据l
int data4 = is.read();//第四个数据l
int data5 = is.read();//第五个数据o
int data6 = is.read();//文件末尾,返回-1
System.out.println((char)data1);
System.out.println((char)data2);
System.out.println((char)data3);
System.out.println((char)data4);
System.out.println((char)data5);
System.out.println(data6);
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
标准流程:
把上面的代码做一些修改,就是标准流程了
public static void main(String[] args){
File src = new File("1.txt");
//修改4:把流这个变量提取出来,否则关闭流的时候取不到这个变量
InputStream is = null;
try {
is = new FileInputStream(src);
//修改1:读取改成循环读取,直到内容末尾,也就是-1
int temp;
while((temp=is.read())!=-1) {
System.out.println((char)temp);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//修改2:把释放资源的操作放到finally语句块中,
//以防文件读取异常时不会释放资源
try {
//修改3:关闭流之前要判断,这个流是不是已经创建成功
if(null != is) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}