• Java IO


    Java IO

    Java的输入流和输出流

    “流”是指从源“流向”目的地的数据流,Java把各种数据源和目标之间数据的传输统一抽象为流,通过对流的读写操作来实现IO操作

    首先通过一张图片来了解Java IO(图片来自菜鸟教程)

    看了图片之后可以知道IO操作离不开Reader,Writer,InputStream,OutputStream这四个顶级接口,其他继承自这四个接口的有各自的用途,但最常用的方法还是来自这四个接口

    InputStream

    先来看一段代码,创建输入流很简单

    public class Main {
        public static void main(String[] args) throws FileNotFoundException {
            String file = "文件地址";
            InputStream inputStream = new FileInputStream(file);
        }
    }

    常见的用法

    public class Main {
        public static void main(String[] args) throws IOException {
            String file = "文件地址";
            InputStream inputStream = new FileInputStream(file);
            byte[] list = new byte[1000];
            
            System.out.println("文件长度"+(inputStream.available()));
            
            int b = inputStream.read();
            
            while(b!=1) {
                b = inputStream.read();
            }
            inputStream.read(list);
            inputStream.close();
        }
    }
    available()返回输入流下一次调用能够不瘦阻塞的读取或跳过的字节数,大白话解释,没有阻塞返回文件字节数。
    read()从输入流读取一个字节返回范围在0~255的一个整数,如果流已读到末尾返回-1,虽然返回值是int,但实际读取双字节字符,比如汉字“中”的编码为“D6D0”,则依次返回214(D6),208(D0)
    read(byte[] list)从输入流读取一定数量的字节存入字节数组list,返回读取的字节数
    close()关闭输入流,释放资源(这是一个好习惯,虽然Java有自动回收的机制,但是既然没用就早点释放)



    OutputStream

    输入流和输出流相对,看一个综合例子
    import java.io.*;
     
    public class fileStreamTest {
        public static void main(String args[]) {
            try {
                byte bWrite[] = { 11, 21, 3, 40, 5 };
                OutputStream os = new FileOutputStream("test.txt");
                for (int x = 0; x < bWrite.length; x++) {
                    os.write(bWrite[x]); // writes the bytes
                }
                os.close();
     
                InputStream is = new FileInputStream("test.txt");
                int size = is.available();
     
                for (int i = 0; i < size; i++) {
                    System.out.print((char) is.read() + "  ");
                }
                is.close();
            } catch (IOException e) {
                System.out.print("Exception");
            }
        }
    }
    write(int b)将int b的低字节写到输出流
    write(byte b[])将数组b写到输出流
    close()关闭字节流
     
    Reader,Writer和前面两者区别不大,只是字符流和字节流的区别

  • 相关阅读:
    vue之v-on
    垂直居中下
    垂直居中上
    vue之v-for
    vue之v-if和v-show
    vue之v-model
    vue之v-bind
    数学---目录
    【数学】证明题
    【计算机网络】应用层
  • 原文地址:https://www.cnblogs.com/shineyoung/p/10513597.html
Copyright © 2020-2023  润新知