Java代码审计之-IO操作的优化小技巧

I/O(input/output)流,即输入输出流。定义在java.io包中。

分类:

1、字节流和字符流—-数据单位不同

2、输入流和输出流—-传输方向不同

3、节点流和处理流—-功能不同

节点流:也叫低级流,从一个特定的IO设备(如 磁盘)续写数据的流,只能直接连接数据源进行读写。

处理流:高级流,对一个已经存在的节点流进行封装成流,通过封装后的流来实现流的读写能力,不会直接连接到实际的数据。

java.io:

在java.io中有四个流的顶级类

字节流:

1、InputStream

2、OutputStream

字符流:

3、Reader

4、Writer

二、字节流

在计算机中所有的文件都是以二进制(字节)的形式存在的。不管是InputStream还是OutputStream都提供了一个close()方法,该方法可以关闭流并释放与当前IO流相关的资源。

InputStream和OutputStream都是抽象类不能实例化。java针对不通过功能提供了不同的子类。

图片[1]-Java代码审计之-IO操作的优化小技巧-山海云端论坛
图片[2]-Java代码审计之-IO操作的优化小技巧-山海云端论坛

1、FileInputStream、FileOutputStream

import java.io.*;public  class StreamTest {    public static void main(String[] args) throws Exception {        /*=============================读取文件内容====================================*/        //定义流        FileInputStream file_in = new FileInputStream("D:\\mycode\\Java\\test2\\src\\test.txt");        //定义变量储存读到的字节        int b=0;        //while循环读取字节,当读到-1意味着已经读到最后,结束循环        //  read()    每次读一个字节        //  read(byte[] bs)    可以读取多个字节,并把读到的字节存入字节数组bs        //  read(byte[] bs,int offset,int len)    可以跳过offset个字节读取len个字节,并把读到的字节存入字节数组bs        //  readAllBytes()      一次性读取所有字节,返回一个字节数组        while ((b=file_in.read())!=-1){            System.out.println("==========");            System.out.println(b);   //直接输出的时ASCII码            System.out.println((char) b);   //转字符输出            System.out.println("==========");        }        file_in.close();        /*=============================写出文件====================================*/        FileOutputStream file_out = new FileOutputStream("D:\\mycode\\Java\\test2\\src\\test2.txt");        String str1 = "hello world";        //write支持传入字节或者字节数组,写到文件之后还是hello world。        //write()  和read()类似,都可以传入字节数组操作多个字节。        file_out.write(str1.getBytes());        file_out.close();        /*=============================文件复制====================================*/        FileInputStream copy_in = new FileInputStream("D:\\mycode\\Java\\test2\\src\\test.txt");        FileOutputStream copy_out = new FileOutputStream("D:\\mycode\\Java\\test2\\src\\testCOPY2.txt");        copy_out.write(copy_in.readAllBytes());    }}

2、BufferedInputStream、BufferedOutputStream

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容