Java - Part 11

2020-02-25  本文已影响0人  低调的灬攻城狮

一、JDBC批处理

批处理是指将多条SQL语句分组到批处理中,并通过对数据库的一次调用提交它们,当需要一次向数据库发送多条SQL语句时,可以减少连接数据库的开销,从而提高性能.

1.Statement批处理

2.PrepareStatement批处理

3.两种方式的区别

二、数据库事务

1、事务的定义
数据库事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
2、事务的特点ACID

3、事务隔离级别

4、JDBC事务处理
JDBC默认是自动提交,我们如果想要手动提交,就要使用Connection对象的setAutoCommit()方法,传入一个boolean值false。

三、File类

File类是一个路径,是文件和目录路径名的抽象表示形式,可以代表的是一个目录,也可以是一个文件。提供众多对文件夹和文件的操作,File类构造方法可以根据一个路径得到File对象,也可以根据一个目录和子文件/目录得到File对象
1、创建功能

2、重命名与删除功能

重命名只是将File代表的文件或者文件夹命名,File对象所表示的路径还是创建时赋予的路径
java中的删除不走回收站,直接删除
要删除一个文件夹,不能包含文件或者文件夹,必须是空的

3、判断功能

4、获取功能

四、字节流

1、IO流

2、 FileInputStream
以字节的形式读取文件内容

3、 FileOutputStream
以字节的形式将数据写入到文件中

4、小数组读写
一次读写一个字节的方法太慢了,所以采用小数组读写:

public static void main(String[] args) throws Exception {
    FileInputStream fis = new FileInputStream("");
    FileOutputStream fos = new FileOutputStream("");
    //创建一个和资源文件大小相同的字节数组
    byte[] bs = new byte[1024*8];
    int len = 0;
    while((len=fis.read(bs))!= -1){
    //最后一次读取的时候可能并不能装满整个数组
    fos.write(bs, 0, len);
    }
    fis.close();
    fos.close();
}

5、字节输入缓冲流
字节输入缓冲流BufferedInputStream,在内部建立了一个缓冲区域,读取文件的时候,一次性读取大量的字节,缓冲到缓冲区中,然后再返回给我们,有点类似小数组读写,不过是在内存中操作。

6、字节输出缓冲流

BufferedOutputStream字节输出缓冲流,将我们写的字节先存放到一个小数组中,等数组满了之后再写入到本地文件中

小数组读写相较于缓冲流效率较高,因为小数组读写只有一个数组,二缓冲流有两个数组

7、流的异常处理
如果在读写文件中出现了异常,无论如何都需要关闭读写流,在JDK 1.7之前,需要手动关闭,在JDK 1.7之后,不需要手动关闭,但是需要创建的流对象实现了AutoCloseable接口

public static void main(String[] args)  {
    try(
        FileInputStream fis = new FileInputStream("");
        FileOutputStream fos = new FileOutputStream("");
    ){
        int i ;
        while((i=fis.read())!= -1){
            fos.write(i);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

五、字符流

字符流是可以直接读写字符的IO流,相较于我们自己转换,Java提供的字符流能够很方便地将字节转换为字符
1、FileReader
字符输入流,底层使用的还是字节流,可以理解为在字节流的基础上包装了一些与字符操作的方法。

2、FileWriter
字符输出流,也是一个缓冲流,将字符写入到文件中,可以直接写入字符串,它的使用方法基本和BufferedOutputStream一样,写完之后需要flush()。

六、字符缓冲流

通过缓冲区来储存字符,效果和用法都和字节缓冲流一样。

七、LineNumberReader

是BufferedReader的子类,具有相同的功能,并且可以统计行号,默认从0开始

八、转换流

转换流可以实现字节流与字符流之间的转换

九、内存流

用于程序和内存进行数据的读写

十、对象操作流(序列化流)

序列化流可以将Java中的对象写出到文件中,或者读取一个对象到Java程序中,写入本地的对象必须是心啊Serializable接口

十一、打印流

打印流可以很方便的将对象的toString()结果输出,并且可以自动计上换行,而且可以使用自动刷出的模式,具有方向性

上一篇 下一篇

猜你喜欢

热点阅读