常用API的使用

BigDecimal

主要用来解决浮点数运算不精确的问题

BigDecimal a2 = new BigDecimal(a + "");

使用 a + "" 的方式将 a 这个 double 类型的数据转换为 String 类型字符串,如果在计算时不转换为字符串的话,会导致计算仍然不精确

bd3 = a2.divide(b2,3,BigDecimal.ROUND_HALF_UP);

括号中的 b2 指的是除法运算的分子,3 代表保留的小数位数, BigDecimal.ROUND_HALF_UP 表示舍入方法为四舍五入

BigInteger

主要用来解决超过普通数据类型的整数接收和运算

BigInteger a = new BigInteger("100000000000000000000");

运算方式

a.add(b)                  加
a.divide(b)              除
a.multiply(b)           乘
a.subtract(b)          减

自动装箱/自动拆箱

使用以下代码默认相等于 Integer i = new Integer(123423)

Integer i = 123423; 

使用以下代码实现数据拆箱

int i1 = i; 

IO流

字节读取流:InputStream抽象类 ---  FileInputStream子类

创建对象的方式:

FileInputStream in =

              new FileInputStream(

                     "E:\\cgbvn2109\\demo.txt");

 写入方式:

syso(   in.read());//会自动向下读取

当读取不到时会读出 -1

 批量读取方式:

int data;

       while(   (   data=in.read()  ) != -1  ) {

           System.out.println(   ( char data   );  //将字节转为char类型显示

       }

       //如果使用了流,一定要关闭流

       in.close();//释放文件

BufferedOutputStream -- 高效字节流写入方式 

 BefferedOutputStream底层维护了一个byte数组,默认容量是8k

高效字节输出流结构
        BufferedOutputStream 对象名称 = new BufferedOutputStream(FileOutputStream对象);
        FileOutputStream 对象 = new FileInputStream(File对象)
        File 对象名 = new File(文件路径);

package cn.tedu.bigdecimal;

import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class Test3_BufferOutputSteam {

	public static void main(String[] args) throws Exception {
		
		method();
		
	}

	private static void method() {
		OutputStream out = null;//声明父类对象并进行初始化
		try {
			out = new BufferedOutputStream(
					new FileOutputStream("E:/2109/123.txt"));//指定创建文件的路径
			out.write(48);//写入字节
			out.write(49);
			out.write(50);
			
			
		} catch (IOException e) {//捕捉IO报警
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {//如果异常没有被捕获则执行finally里的代码
			try {
				out.close();//释放
			} catch (IOException e) {//捕捉报警
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
	}

}

文件的复制

 package cn.tedu.writer2;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Scanner;

import javax.swing.plaf.basic.BasicRadioButtonMenuItemUI;

public class Test1_Writer4 {

	public static void main(String[] args) {
		System.out.println("请输入需要复制的文件路径:");
		String source = new Scanner(System.in).next();
		System.out.println("请输入接受文件的路径及名称");
		String target = new Scanner(System.in).next();
		long i = System.currentTimeMillis();
		try {
			copy(source,target);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		long j = System.currentTimeMillis();
		System.out.println("复制文件所用时间为:" + ( j - i ) + "毫秒");
	}
	private static void copy(String source, String target) throws Exception {
		BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(target));
		BufferedInputStream in = new BufferedInputStream(new FileInputStream(source));
		//字节输出流结构
		//BufferedOutputStream 对象名称 = new BufferedOutputStream(FileOutputStream对象);
		//FileOutputStream 对象 = new FileInputStream(File对象)
		//File 对象名 = new File(文件路径);
		int a;
		while ((a = in.read()) != -1) {
			out.write(a);
		}
		System.out.println("复制成功!!!");
		in.close();
		out.close();
	}
}

批量读写

按照数组去读取

private static void copy(String source, String target) throws Exception {
        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(target));
        BufferedInputStream in = new BufferedInputStream(new FileInputStream(source));
        //批量读写时候需要使用数组接收
        byte[] bs = new byte[8192];
        int a;
        while ((a = in.read(bs)) != -1) {
            out.write(bs);
        }
        
        System.out.println("复制成功!!!");
        in.close();
        out.close();
    }

 序列化和反序列化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GOWE845

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值