写一个程序需要的步骤:
选择源--->流走那些数据源
选择流--->选择什么流走方式(选择具体的子类)
具体的操作--->流里面的方法(一个一个来还是一段一段来读、写)
释放--->释放系统资源
普通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.至少返回练习十遍以上 */