写一个程序需要的步骤:
-
选择源--->流走那些数据源
-
选择流--->选择什么流走方式(选择具体的子类)
-
具体的操作--->流里面的方法(一个一个来还是一段一段来读、写)
-
释放--->释放系统资源
普通io流类:
package iostudy.ioprogramme;
import java.io.*;
import java.util.ArrayList;
/**
* 第一个io程序:--->理解操作步骤
* 1.创建源
* 2.选择流
* 3.进行文件操作
* 4.释放资源
* @author Lucifer
*/
public class IoTestNo1 {
public static void main(String[] args) throws FileNotFoundException {
//1.创建源文件
File src = new File("D:/workspace/practice/main/java/iostudy/ioprogramme/abc.txt"); //操作io流读取内容的时候不能直接操作文件夹,要操作文件夹需要使借助递归的方法
//2.选择流
/*
因为与外界产生了联系,所以产生了异常
处理方式:
1.try---catch--->手写处理方法
2.throw--->抛给方法的调用处不去处理
*/
try {
InputStream is = new FileInputStream(src);
//进行操作(读取)
int data1 = is.read(); //第一个数据
int data2 = is.read(); //第二个数据
int data3 = is.read(); //第三个数据
int data4 = is.read();
// System.out.println((char) data1); //这里需要转型成char,因为返回的是int是一个代号
// System.out.println((char) data2);
// System.out.println((char) data3);
// System.out.println((char) data4); //没有第四个数据,返回一个符号
char data11 = (char) data1;
char data12 = (char) data2;
char data13 = (char) data3;
char data14 = (char) data4;
char[] d1 = {data11,data12,data13,data14};
System.out.println(d1);
for (char d2 : d1){
System.out.println(d2);
}
//释放资源
is.close();
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
}
规范io流类:
package iostudy.ioprogramme;
import java.io.*;
/**
* 第一个io程序:--->理解操作步骤--->改成标准的形式
* 1.创建源
* 2.选择流
* 3.进行文件操作
* 4.释放资源
* @author Lucifer
*/
public class IoTestNo2 {
public static void main(String[] args) {
//1.创建源文件
//操作io流读取内容的时候不能直接操作文件夹,要操作文件夹需要使借助递归的方法
File src1 = new File("D:/workspace/practice/main/java/iostudy/ioprogramme/abc.txt");
//2.选择流
/*
因为与外界产生了联系,所以产生了异常
处理方式:
1.try---catch--->手写处理方法
2.throw--->抛给方法的调用处不去处理
*/
InputStream is = null;
try {
is = new FileInputStream(src1); //如果放在try里面建立对象那么在下面代码中不可以使用,所以要提升作用域
//进行操作(读取)--->利用循环进行读取
int temp = -1; //临时节点
byte[] chars = new byte[1024]; //FileInputStream的read方法需要的是byte类型的数组不是char类型
/*
char类型的数组是FileReader方法需要的
*/
while ((temp = is.read(chars))!=-1){
String s = new String(chars, 0, temp);
System.out.println(s);
}
}catch (FileNotFoundException e){
e.printStackTrace(); //如果后期出了异常,将释放资源放在上面的位置不对,要在下面加finally
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if (null!=is){
//释放资源
is.close(); //如果前面一开始is就创建一场,所以前面要判断不为空指针
}
}catch (IOException e){
e.printStackTrace();
}
}
}
}
/*
1.至少返回练习十遍以上
*/