复习 流操作

有时候在写网络编程的时候需要处理上传下载的东西,这时候需要我们使用流操作。

首先我们先明白我们流的结构


image.png

java的流分为字节流和字符流。
字节流的的单位为字节,而我们字符流单位为字符,因为java使用的Unicode,一个字符占两个字节
由此我们可以知道我们在网络之中对图片视频的处理我们都会使用字节流

其次我们的Out Stream和Input Stream 的含义针对于程序而言。
我们的的Out Stream寓意我们程序要对外流出东西,而相反对于Input,我们要对程序中流入东西。
还有的是,我们的一个流要么是读要么是写,如要实现对一文件读写,可以写两个流。

主要流的类有
主要的类如下:

 1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

 2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。

 3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

 4.Reader(文件格式操作):抽象类,基于字符的输入操作。

 5. Writer(文件格式操作):抽象类,基于字符的输出操作。

 6. RandomAccessFile(随机文件操作):一个独立的类,直接继承至Object.它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。

最后我有一段代码帮助理解:
这是我的一个目录文件夹:


image.png

接下来我会使用流进行一个复制操作:

try {
InputStream inputStream = new FileInputStream("D:\l\timg.jpg");
byte[] data = new byte[1024];
OutputStream outputStrea = new FileOutputStream("D:\l\timg2.jpg");

        int flag = inputStream.read(data);
        while(flag != -1){
            outputStrea.write(data);
            flag = inputStream.read(data);
        }
        inputStream.close();
        outputStrea.close();

    }catch (Exception e){
        System.out.println(e.getMessage());
    }

运行之后:

image.png

对于各个具体的流具体操作,我这里建议去读API,如果还有什么不明白,可以去看以下博客

https://www.cnblogs.com/ylspace/p/8128112.html
https://blog.csdn.net/annotation_yang/article/details/78397239

你可能感兴趣的:(复习 流操作)