• 字节流读数据(InputStream)


     

    //读取一个字节并以整数的形式返回(0-255)

    //如果返回-1已到输入流的末尾

    int read() throws IOException

    //读取一系列字节并存储到一个数组buffer,//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1

    int read(byte [] buffer) throws IOException

    //读取length个字节

    //并存储到一个字节数组buffer,从length位置开始

    //返回实际读取的字节数,如果读取前已到输入流的末尾返回-1

    int read(byte [ ] buffer,int offset,int length)

    throws IOException

    //关闭流释放内存资源

    void close() throws IOException

    // 跳过 n个字节不读,返回实际跳过的字节数

    long skip(long n) throws IOException

       
    package com.io.liushuaishuai;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class FileInputStreamDemo01 {
        public static void main(String[] args) throws IOException {
    //        FileInputStream​(String name)
    // 通过打开与实际文件的连接来创建一个 FileInputStream ,
    // 该文件由文件系统中的路径名 name命名。
    
            FileInputStream fis = new FileInputStream("myIOstream\fos.txt");
    
    
    //        read​() 从该输入流读取一个字节的数据。
    
            /*//第一次读取数据
            int i = fis.read();
            //System.out.println(i);
            System.out.println((char) i);
    
            //第二次读取数据
            int k = fis.read();
            //System.out.println(i);
            System.out.println((char) k);
            */
    
            /*
            //到达文件末尾,返回值为-1;
            int i = fis.read();
            while (i != -1) {
                System.out.print((char)i);
                i = fis.read();
            }
            */
            //优化上面的程序
            int i;
            while ((i = fis.read()) != -1) {
                System.out.print((char) i);
            }
    
    
            fis.close();
        }
    }
    

     

    不需要人为加换行符

    =============================================================================================================================================

    字节流复制文本文件

    package com.io.liushuaishuai;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class FileInputStreamDemo02 {
        public static void main(String[] args) throws IOException {
            //创建字节输入流对象
            FileInputStream fis = new FileInputStream("myIOstream\fos.txt");
            /*
            byte[] bys  = new byte[5];
            //第一次读取数据
            int i = fis.read(bys);
            System.out.println(new String(bys,0,i));
    
            //第二次读取数据
            i = fis.read(bys);
            System.out.println(new String(bys,0,i));
    
            i = fis.read(bys);
            System.out.println(new String(bys,0,i));
            */
            byte[] bys = new byte[1024];
            int len;
           while ((len =fis.read(bys)) != -1 ) {
               System.out.println(new String(bys,0,len));//
    String​(byte[] bytes, int offset, int length)
    通过使用平台的默认字符集解码指定的字节子阵列来构造新的 String
           }
    
    
    
    
    
    
            //释放资源
            fis.close();
        }
    }
    

     字节流复制图片

     

    package com.io.liushuaishuai;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class CopyjpgDemo {
        public static void main(String[] args) throws IOException {
            //根据数据源创建字节输入流对象
            FileInputStream fis = new FileInputStream("C:\壁纸\index.jpg");
    
            //创建字节输出流对象
    
            FileOutputStream fos = new FileOutputStream("myIOstream\index.jpg");
    
            //读取数据
            byte[] bys = new byte[1024];
            int len;
            while ((len = fis.read(bys))!= -1) {
                fos.write(bys,0,len);
            }
            fos.close();
            fis.close();
        }
    
    }
    
  • 相关阅读:
    C语言的数组,指针,二级指针,指针数组和数组指针的简单理解
    bash shell 中时间操作常用方法总结
    常见字符串操作方式总结
    查看机器负载常用姿势总结
    netstat命令常用总结
    【技术累积】【点】【java】【20】static关键字
    【技术累积】【点】【java】【19】访问权限
    【技术累积】【点】【java】【18】URLEncode
    【技术累积】【点】【sql】【17】了解索引
    【技术累积】【点】【算法】【17】算法的时间复杂度和空间复杂度
  • 原文地址:https://www.cnblogs.com/lsswudi/p/11369677.html
Copyright © 2020-2023  润新知