zoukankan      html  css  js  c++  java
  • 字节流

    一  字节流

    1.1字节输出流OutputStream

    OutputStream是一个抽象类,操作的数据都是字节。

    输出流中定义都是写write方法,如下图:

    1.1.1 FileOutputStream类

    OutputStream有很多子类,其中子类FileOutputStream可用来写入数据到文件。FileOutputStream类,即文件输出流,是用于将数据写入 File的输出流。

    构造方法:

    将数据写入文件中

    复制代码
        public static void method01() throws IOException{
            //创建字节输出流对象
            //如果该文件有则覆盖,如果没有则覆盖
            FileOutputStream fos=new FileOutputStream("E:\java\demo.txt");
            fos.write(100);//ASCII码
            //释放资源
            fos.close();
            
        }
    复制代码
    复制代码
        public static void method02() throws IOException{
            //创建字节输出流对象
            //如果该文件有则覆盖,如果没有则覆盖
            FileOutputStream fos=new FileOutputStream("E:\java\demo.txt");
            //byte[] bytes={97,98,99,100};
            //fos.write(bytes,1,1);
            //字符串转字节数组
            fos.write("你好吗,中国".getBytes());
            //释放资源
            fos.close();
            
        }
    复制代码
    复制代码
    public static void method03() throws IOException{
            //创建字节输出流对象
            //如果该文件有则覆盖,如果没有则覆盖
            FileOutputStream fos=new FileOutputStream("E:\java\demo.txt",true);
            //换行 
    
            //字符串转字节数组
            fos.write("hello,java".getBytes());
            //释放资源
            fos.close();
            
        }
    复制代码

    给文件续写和换行时,在FileOutputStream的构造函数中,可以接受一个boolean类型的值,如果值true,就会在文件末位继续添加。

    1.2字节输入流InputStream

    InputStream是一个抽象类,定义了读的方法

    1.2.1 FileInputStream类

    FileInputStream类是InputStream的实现类,用它来读取文件内容

    构造方法有

    用它来读取数据

    1 单个字节读

    复制代码
    public static void method01() throws IOException{
            //明确数据源
            FileInputStream fis=new FileInputStream("E:\java\demo.txt");
            //从文件中读取一个字节
            int len1=fis.read();
            //强转字符型   加char
            System.out.println((char)len1);
            len1=fis.read();
            System.out.println((char)len1);
            len1=fis.read();
            System.out.println((char)len1);
            len1=fis.read();
            System.out.println((char)len1);
            len1=fis.read();
            System.out.println((char)len1);
            len1=fis.read();
            System.out.println(len1);
            //释放资源
            fis.close();
        }
    复制代码

    2.单个字节循环读

    复制代码
    public static void method02() throws IOException{
            FileInputStream fis=new FileInputStream("E:\java\demo.txt");
            int len=0;
            while((len=fis.read())!=-1){
                System.out.println((char)len);
            }
            //释放资源
            fis.close();
        }
    复制代码

    3.用数组的形式一个个读

    复制代码
    public static void method03() throws IOException{
            FileInputStream fis=new FileInputStream("E:\java\demo.txt");
            //创建数组
            byte[] bytes=new byte[2];
            int len=fis.read(bytes);
            System.out.println(new String(bytes));
            System.out.println(len);
            len=fis.read(bytes);
            System.out.println(new String(bytes));
            System.out.println(len);
            len=fis.read(bytes);
            System.out.println(new String(bytes));
            System.out.println(len);
            //释放资源
            fis.close();
        }
    复制代码

    4.用数组的形式循环读

    复制代码
        public static void method04() throws IOException{
            FileInputStream fis=new FileInputStream("E:\java\demo.txt");
            //创建数组
            byte[] bytes=new byte[2];
            int len=0;
            while((len=fis.read(bytes))!=-1){
                System.out.println(new String(bytes,0,len));
            }
            //释放资源
            fis.close();
        }
    复制代码

    字节流的练习:进行文件的复制

    复制代码
    //文件的复制
        public static void method05() throws IOException{
            //数据源
            FileInputStream fis=new FileInputStream("E:\java\demo.txt");
            //目的地
            FileOutputStream fos=new FileOutputStream("F:\demo.txt");
            //开始复制
            int len=0;
            while((len=fis.read())!=-1){
                fos.write(len);
            }
            //释放资源
            fis.close();
            fos.close();
        }
    复制代码
  • 相关阅读:
    ASP.NET 上传文件最大值调整
    Git撤销提交
    MVC模式下如何实现RegisterStartupScript等功能
    RESTful接口设计原则/最佳实践(学习笔记)
    如何编译MongoDB?
    【NTKO】一些常用操作
    【solr】使用-取反时注意,-是表示排除,不能单独做条件用
    【layui】日期范围分开两个input,开始日期选中时,结束日期的最小可选择就是开始日期
    【转】【Java】剪切板操作大全
    【转】彻底禁用Chrome的“请停用以开发者模式运行的扩展程序”提示
  • 原文地址:https://www.cnblogs.com/lxzwhite/p/10634661.html
Copyright © 2011-2022 走看看