首页 > 代码库 > I/O输入输出-输入/ 输出流

I/O输入输出-输入/ 输出流

 1,   流是一组有序的数据序列,根据操作类型,可以分为输入流和输出流,实际上是程序与文件/数组/网络连接/数据库的关系,但要以程序为中心。

 2,IO流分类

    1)按流向分:输入流与输出流

    2)按数据分:字节流:二进制,一切文件均可

                       字符流:文本文件,只处理纯文本

3,字符流与字节流(重点)

    1),字节流:输入流:InputStream(字节输入流)

                       输出流:OutputStream(字节输出流)

   2),字符流:输入流:Reader(字符输入流)

                      输出流:Writer(字符输出流)

4,操作

    举例:搬家------------->读取文件

   1)关联房子  ----------->建立与文件的联系---------------->创建file对象

   2)选择搬家------------->选择对应流---------------------->文件输入流(InputSream,FileInputStream)/文件输出流(InputSream,FileInputStream)

   3)搬家------------------>读取/写出

            a) 卡车大小------->数组大小

            b)运输------------->读取/写出

   4)打发over--------------->释放资源

---------读取文件内容-------------

public static void test()//读取文件内容操作
    {
        File src = new File("e:/test/zjf.txt");
        InputStream is = null;
        try {
            is = new FileInputStream(src);//使用src对象创建is对象
            int len = 0;
            byte[] car =new byte[100];
            try {
                //String info = null;
                while(-1!=(len=is.read(car)))//当len=-1时表示已经读到文件末尾
                {//将字节流转变成字符流,然后读取字符流
                    String info = new String(car,0,len);
                    System.out.println(info);//读取文件内容
                }
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(is!=null)//将数据读取完后需要释放资源
            {
                try {
                    is.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

-------------向文件中写入内容----------------------

public static void test1()
    {
        File dest = new File("e:/test/zjf.txt");
        OutputStream is = null;
        try {
            is = new FileOutputStream(dest,false);//true代表在文件中追加内容,false代表更新文件内容,不保留原有的
            String src = "http://www.mamicode.com/hkafhgkshgkag";
            byte[] data =http://www.mamicode.com/ src.getBytes();
            try {
                is.write(data);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

 

I/O输入输出-输入/ 输出流