java_24 FileOutputStream类和FileInputStream类

1.OutputStream 和InputStream

  输入和输出:1.参照物都是java程序来惨遭

        2.Input输入,持久化上的数据----》内存

        3.Output输出,内存---》硬盘

  字节输出流:

    OutputStream:

      定义:流按照方向可以分为输入和输出流,字节流可以操作任何数据,字符流只能操作纯字符数据。

      IO流父类:OutputStream和InputStream

  IO流程序书写步骤:

       1.先导包

       2.进行异常处理

       3.释放资源

2FileOutputStream

  是OutputStream的子类

  1.1文件输出流是用于将数据写入 FileFileDescriptor 的输出流。

  1.2.创建流

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Demo {
    public static void main(String[] args) throws Exception {
        /*  步骤   1创建流 子类对象  绑定数据目的
         *      2 调用write() 方法
         *      3 close 关闭资源
         *
         * */
        FileOutputStream fos = new FileOutputStream("d:\\aaa.txt");
        //        调用write() 方法  写一个字节
        fos.write(97);
        //   写字节数组 
        byte[] b = {65,66,67,68};
        fos.write(b);
        //    写字节数组的一部分
        fos.write(b,1,2);
        //2.3写字符串   getBytes()  字符串转字节
        fos.write("hello world".getBytes());
        //关闭资源
        fos.close();
    }
}

   文件的换行和续写,即每次刷新程序,都会在原有的基础上重新添加数据

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Demo {
    public static void main(String[] args) throws Exception {
        /*
         * 换行和续写
         */
        File file = new File("d:\\b.txt");
        FileOutputStream fos = new FileOutputStream(file,true);
        fos.write("hello\r\n".getBytes());
        fos.write("world\\r\n".getBytes());
        //关闭流
        fos.close();
    }
}

 3FileInputStream流

  是InputStream的子类

  2.1FileInputStream 从文件系统中的某个文件中获得输入字节。

  2.2创建流

    字符读取(读取速度慢)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Demo {
    public static void main(String[] args){
        // 1创建字节输入流的子类对象
        //2 调用方法读取 read
        //3 关闭资源
        try {
            FileInputStream fis = new FileInputStream("d:\\aaa.txt");
            int len = 0;
            while((len=fis.read())!=-1) {
                System.out.print((char)len);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         
    }
}

     字节数组读取(读取速度快)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Demo {
    public static void main(String[] args){
        // 1创建字节输入流的子类对象
        //2 调用方法读取 read
        //3 关闭资源
        try {
            FileInputStream fis = new FileInputStream("d:\\aaa.txt");
            //创建字节数组
            byte[] b = new byte[1024];
            int len = 0;
            while((len = fis.read(b))!=-1) {
                System.out.println(new String(b,0,len));
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

 

posted @   CHAHN  阅读(189)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示