java基础篇(六:I/O流——1)——基础知识

来源:互联网 发布:linux 即时通讯 编辑:程序博客网 时间:2024/06/07 21:20

引言

           流有很多种,例如生活中的水流、车流,基本都是对象流动、传递、作用的一种方式。在IT界也包含一种流,我们称之为IO流,即输入输出流。

概述

            Java IO 是一套Java用来读写数据(输入和输出)的API。用来从原始数据源的读取以及输出原始数据到目标媒介。

内容

            一 分类              

           (1)数据流方向不同:输入、输出流

           (2)数据处理单位不同:字节、字符流

           (3)功能不同:节点、处理流

           (4四种抽象流:

                    

       二 常用的java IO类

           

         三 实例:将文件中的数据输入到另一个文件中的步骤

             1 首先创建文件,并且和需要操作的文件相关联,注意需要判断文件是否存在,否则会抛出异常,若文件不存在就重新创建一个文件。

             2 读写文件一般使用字符流效率更高,即使用FileReader和FileWriter进行读写操作

             3 创建FileReader对象用于读取文件中的数据,可以使用缓存流包装提高效率,创建一个BufferedReader对象:BufferedReader buffer= new BufferedReader(new InputStreamReader(new FileReader(file)));

             4 创建FileWriter,同上使用缓存

             5 代码实例:       

import java.io.*;/** * Created by Administrator on 2017-10-11. */public class JavaIO {    public static void progress(String originFilePath,String destinationFilePath)throws IOException{        //1 创建俩个文件对象并关联到文件        File originFile =  new File(originFilePath);        File destinationFile = new File(destinationFilePath);        //2 声明IO流和缓存流        InputStreamReader inputStreamReader = null;        OutputStreamWriter outputStreamWriter = null;        BufferedReader bufferedReader = null;        BufferedWriter bufferedWriter = null;        //3 判断文件是否存在        if (!originFile.exists()){            try{                originFile.createNewFile();            }catch (IOException e){                e.printStackTrace();            }        }        if (!destinationFile.exists()){            try{                destinationFile.createNewFile();            }catch (IOException e){                e.printStackTrace();            }        }        //4 进行文件的复制        try{            //将源文件中的内容读取到缓存流读取对象中            bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(originFile),"ISO-8859-1"));            //将目标文件对象放到缓存流写入对象中            bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destinationFile),"ISO-8859-1"));            //将原始文件的内容逐行写入目标文件            String line = null;            while ((line=bufferedReader.readLine())!=null){                bufferedWriter.write(line);                bufferedWriter.newLine();            }            //将bufferedWriter对象写入目标文件中            bufferedWriter.flush();        }catch (IOException e){            e.printStackTrace();        }finally {            //5 关闭所有流对象            if(inputStreamReader!=null){                try {                    inputStreamReader.close();                }catch (IOException e){                    e.printStackTrace();                }            }            if(outputStreamWriter!=null){                try {                    outputStreamWriter.close();                }catch (IOException e){                    e.printStackTrace();                }            }            if (bufferedReader!=null){                try {                    bufferedReader.close();                }catch (IOException e){                    e.printStackTrace();                }            }            if(bufferedWriter!=null){                try {                    bufferedWriter.close();                }catch (IOException e){                    e.printStackTrace();                }            }        }    }    public  static void main(String[] args){        //声明俩个文件地址        String originFilePath = "E:\\a.txt";        String destinationFilePath = "E:\\b.txt";        System.out.println("将原始文件:" + originFilePath + "复制到目标文件:"+destinationFilePath);        //文件复制        try{            progress(originFilePath,destinationFilePath);            System.out.println("复制完毕");        }catch (IOException e){            e.printStackTrace();        }    }}         

总结

            JavaIO流位于Java.io包中,javaIO流主要涉及文件,网络数据流,内存缓冲等的输入、输出。

原创粉丝点击