A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

IO的简单介绍
IO概述
IO流用来处理设备之间的数据传输。
Java对数据的操作是通过流的方式。
Java用于操作流的对象都在IO包中。
IO分类:
流按操作数据分为两种
字节流与字符流。
注意:其实计算机里的所有数据都是以字节的形式体现的,计算机可以直接识别节。但是作为人类的程序员更擅长操作字符,所以后期产生了字符流 。
流按流向分为:
输入流(input),输出流(output)。
IO中常见的核心的类及其方法的介绍:
字节流:
        输入流:
            InputStream
                FileInputStream
                        read(int byte)
                        resd(byte[] arr)
                BufferedInputStream
                        read(int byte)
                        resd(byte[] arr)
        输出流:
            OutputStream
                fileOutputStream
                        write(int byte)
                        write(byte[] arr)
                BufferedOutputStream
                        write(int byte)
                        write(byte[] arr)
               
字符流:
        输入流:
            Reader       
                FileWriter
                        read(char char)
                        read(char[] chars)
                BufferedFileWriter
                        read(char char)
                        read(char[] chars)
                        readLine()
                InputStreamWriter(转换流)
                        read(int byte)
                        resd(byte[] arr)
        输出流:
            Writer
                FileReader
                        write(char char)
                        write(char[] chars)
                BufferedFileReader
                        write(char char)
                        write(char[] chars)
                        newline()
                OutputStreaReader(转换流)
                        write(int byte)
                        write(byte[] arr)
                                       
IO中常见的核心的类简单图解:
C:\Users\xue\Desktop\0315jva培训资料\day21\code
IO中常用的代码实现:
1:字节流的:
package cn.itcast3;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
*        使用高效字节流复制文件:
*/
public class Demo4 {
        public static void main(String[] args) throws IOException {
                long currentTimeMillis = System.currentTimeMillis();
                //创建输入流对象
                FileInputStream fis = new FileInputStream("b.txt");
                BufferedInputStream bis = new BufferedInputStream(fis);
                //创建输出流对象
                FileOutputStream fos = new FileOutputStream("b2.txt");
                BufferedOutputStream bos = new BufferedOutputStream(fos);
                //读入
                byte[] bytes = new byte[1024];
                int len;
                while((len=bis.read(bytes))!=-1) {
                        //写出
                        bos.write(bytes, 0, len);
                        bos.flush();
                }
                //关闭流
                bos.close();
                bis.close();
                long currentTimeMillis2 = System.currentTimeMillis();
                System.out.println(currentTimeMillis2-currentTimeMillis);
        }
}
:2:字符流的:
package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 高效字符流完成文件复制
*/
public class Demo6 {
        public static void main(String[] args) throws IOException {
                //创建流对象
                BufferedReader br = new BufferedReader(new FileReader("src/cn/itcast/Demo.java"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("d.txt"));
                //读写
                String line;
                while((line = br.readLine())!=null) {
                        bw.write(line);
                        bw.newLine();
                }
                //关闭流
                bw.close();
                br.close();
        }
}
3:转换流的:
package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
* 转换流:
*                 OutputStreamWriter:
*                                         使用时:将字节流转换成字符流
*                                         概念上:字符流通向字节流的桥梁
*
*                 InputStreamReader:
*                                         使用时:将字节流转换成字符流
*                                         概念上:字节流通向字符流的桥梁
*/
public class Demo7 {
        public static void main(String[] args) throws IOException {
                //创建流对象
                //由字节流创建一个字符流
                InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));
                //由字符流创建高效字符流
                BufferedReader br = new BufferedReader(isr);
                //由字节流创建一个字符流
                OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("e.txt"));
                //由字符流创建高效字符流
                BufferedWriter bw = new BufferedWriter(osw);
                //读写
                String line;
                while((line=br.readLine())!=null) {
                        bw.write(line);
                        bw.newLine();
                }
                //关闭流
                bw.close();
                br.close();
        }
}




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马