day20:Buffered/IOUtils/序列化/读GBK写UTF-8/FileUtils

Buffered
    java.io.BufferedOutputStream  
        字节输出缓冲流
        构造方法
            public BufferedOutputStream(OutputStream out)
OutputStream out:字节输出流的超类 抽象类
可以传入其任意子类对象 FileOutputStream
        方法
            write(int b) 写一个字节
write(byte[] bytes) 写字节数组
write(byte[] bytes,int start ,int length) 写字节数组一部分
close() 关闭资源
    java.io.BufferedInputStream  
        字节输入缓冲流
        构造方法
            public BufferedInputStream(InputStream in)
InputStream in:所有字节输入流的超类 抽象类
可以传入其任意子类对象 FileInputStream
        方法
            int read() 读一个字节
int read(byte[] bytes) 读一个字节数组
close() 关闭资源
    java.io.BuffferedReader
         字符输入缓冲流
        构造方法
            public BufferedReader(Reader r)
Reader  r: 可以传入Reader的子类对象 FileReader
        特有方法
            String readLine() 读取一行记录 返回值为读取到的数据 如果没有数据 返回null值
注意:只读取换行符之前的数据  不读\r\n
    java.util.BuffferedWriter   
        字符输出缓冲流
        构造方法
            public BufferedWrter(Writer w)
Writer w : 可以传入子类对象 FileWriter
                bw.write("hello world");
bw.newLine();
bw.flush();
        特有方法
            void newLine()  写换行

GBK与UTF-8编码转换
    java.io.InputStreamReader
        可以使用Reader的read方法
        构造方法
            InputStreamReader(InputStream in)  使用平台默认编码
InputStreamReader(InputStream in, String charsetName)  指定编码
String charsetName:指定字符集 不区分大小写 不能乱写
            Reader r = new InputStreamReader(new FileInputStream("d:\\work\\abc\\gbk.txt"),"gbk");
    java.io.OutputStreamWriter
        继承自Writer
        构造方法
            public OutputStreamWriter(OutputStream  out)
public OutputStreamWriter(OutputStream  out,String charsetName)
            Writer  w = new OutputStreamWriter(new FileOutputStream("d:\\work\\abc\\gbk.txt",true),"gbk");
    将一个GBK文件 转换成一个UTF-8文件  编码转换
    Reader r = new InputStreamReader(new FileInputStream("d:\\work\\abc\\gbk.txt"),"gbk");
Writer w = new OutputStreamWriter(new FileOutputStream("d:\\work\\abc\\utf.txt"),"utf-8");

序列化流
    java.io.ObjectOutputStream
        序列化流
        构造方法
            public ObjectOutputStream(OutputStream out)
        方法
            writeObject(Object obj) 写对象
        Serializable
            就是一个标记型接口 实现此接口 允许序列化 不实现 不允许
            静态内容 不能序列化
            transient:瞬态关键字 阻止成员序列化
    java.io.ObjectInputStream  
        反序列化流
        构造方法
            public ObjectInputStream(InputStream in);
        方法
            Object readObject() 读对象

PrintStream
    java.io.PrintWriter
        字符打印流
            public PrintWriter(String path)
public PrintWriter(File file)
public PrintWriter(OutputStream out)
public PrintWriter(Writer w)
        特点
            1.打印流只负责数据目的 不负责数据源
2.打印流中的方法 不抛IO异常
3.字符打印流可以开启自动刷新
                            前提条件
                                  构造方法必须是流对象
public PrintWriter(OutputStream out,boolean autoFlush)
public PrintWriter(Writer w,boolean autoFlush)
自动刷新的方法 只针对 println printf format方法

IOUtils
    InputStream in = new FileInputStream("day21\\test\\mm.jpg");
OutputStream out = new FileOutputStream("day21\\test\\mm2.jpg");

IOUtils.copy(in,out);
IOUtils.closeQuietly(out);
IOUtils.closeQuietly(in);

FileUtils
    //读取文件
     String s = FileUtils.readFileToString(new File("day21\\test\\1.txt"));
    //向文件中写字符串
      FileUtils.writeStringToFile(new File("day21\\test\\3.txt"),s);
    //复制文件
     FileUtils.copyFile(new File("day21\\test\\mm.jpg"),new File("day21\\test\\mm3.jpg"));
    //复制文件夹 递归复制多级
        File srcDir = new File("d:\\tk");
        File destDir = new File("d:\\work\\abc");
        FileUtils.copyDirectoryToDirectory(srcDir,destDir);
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值