Java09-BigDecimal/BigInteger和IO读取

本文详细介绍了Java中的BigDecimal和BigInteger类,包括它们的概述、创建对象及常用方法。此外,还深入讲解了Java IO流,涵盖了字节流、字符流的使用,如FileInputStream、BufferedInputStream、FileReader、BufferedReader等,并提供了文件读取的案例练习。
摘要由CSDN通过智能技术生成

1 BigDecimal/BigInteger

1.1 概述

BigDecimal:常用来解决精确的浮点数运算。
BigInteger:常用来解决超大的整数运算。

1.2 创建对象

BigDecimal.valueOf(2);

1.3 常用方法

add(BigDecimal bd): 做加法运算
substract(BigDecimal bd) : 做减法运算
multiply(BigDecimal bd) : 做乘法运算
divide(BigDecimal bd) : 做除法运算
divide(BigDecimal bd,保留位数,舍入方式):除不尽时使用
setScale(保留位数,舍入方式):同上
pow(int n):求数据的几次幂
在这里插入图片描述

2 IO

2.1 继承结构

in/out相对于程序而言的输入(读取)和输出(写出)的过程。
在Java中,根据处理的数据单位不同,分为字节流字符流
在这里插入图片描述

2.2 流的概念

数据的读写抽象成数据,在管道中流动。
Ø 流只能单方向流动
Ø 输入流用来读取in
Ø 输出流用来写出Out
Ø 数据只能从头到尾顺序的读写一次
在这里插入图片描述

2.3 File文件流

2.3.1 概述

封装一个磁盘路径字符串,对这个路径可以执行一次操作
可以用来封装文件路径、文件夹路径、不存在的路径

2.3.2 创建对象

File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例

2.3.3 常用方法

文件、文件夹属性

length():文件的字节量
exists():是否存在,存在返回true
isFile():是否为文件,是文件返回true
isDirectory():是否为文件夹,是文件夹返回true
getName():获取文件/文件夹名
getParent():获取父文件夹的路径
getAbsolutePath():获取文件的完整路径

创建、删除

createNewFile():新建文件,文件夹不存在会异常,文件已经存在返回false
mkdirs():新建多层不存在的文件夹\a\b\c
mkdir():新建单层不存在的文件夹\a
delete():删除文件,删除空文件夹

文件夹列表

list():返回String[],包含文件名
listFiles():返回File[],包含文件对象

2.3.4 递归求目录总大小

  • 递归:不断的调用方法本身

递归:统计文件大小,删除文件
求目录的总大小:
1、把指定目录封装成File对象
2、把文件夹列表列出来
3、判断,如果是文件,直接把f.length()相加
4、判断,如果是文件夹,继续列表,继续判断,如果是文件相加,如果又是文件夹,继续列表,继续判断,如果是文件相加…
5、如果是文件夹,递归调用方法本身的业务逻辑
在这里插入图片描述

2.4 字节流读取

字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据。
流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。

2.4.1 InputStream抽象类

此抽象类是表示字节输入流的所有类的超类/抽象
常用方法:

  • abstract int read()
    从输入流中读取数据的下一个字节。

  • int read(byte[] b)
    从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。

  • int read(byte[] b, int off, int len)
    将输入流中最多 len 个数据字节读入 byte 数组。

  • void close()
    关闭此输入流并释放与该流关联的所有系统资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值