Java教程

5.10Java实操IO流,面向接口编程,面向父类编程

本文主要是介绍5.10Java实操IO流,面向接口编程,面向父类编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

5.10Java实操IO流,面向接口编程,面向父类编程

写一个程序需要的步骤:

  • 选择源--->流走那些数据源

  • 选择流--->选择什么流走方式(选择具体的子类)

  • 具体的操作--->流里面的方法(一个一个来还是一段一段来读、写)

  • 释放--->释放系统资源

普通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.至少返回练习十遍以上
 */

 

这篇关于5.10Java实操IO流,面向接口编程,面向父类编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!