Java IO字节流读取

字节流:针对二进制文件

  字节流:针对二进制文件
  InputStream
  --FileInputStream
  --BufferedInputStream
  --ObjectInputStream
  OutputStream
  --FileOutputStream
  --BufferedOutputStream
  --ObjectOutputStream
  字符流:针对文本文件。读写容易发生乱码现象,在读写时最好指定编码集为utf-8
  Writer
  --FileWriter
  --BufferedWriter
  --OutputStreamWriter
  Reader
  --FileReader
  --BufferedReader
  --IutputStreamWriter
  --PrintWriter/PrintStream

读写
File文件流

常用的方法

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

创建、删除
creatNewFile()//新建文件,文件夹不存在会异常,文件已存在返回false
mkdirs()//新建多层不存在的文件夹\a\b\c
mkdir()//新建单层不存在的文件加\a
delete()//删除文件,删除文件夹

文件夹列表
list()//返回String,包含文件名
listFiles()//返回file,包含文件对象

字节流读取

父类

--public abstract class InputStream
	--void close() 关闭此输入流并释放与该流关联的所有系统资源
	--abstract int read() 从输入流中读取数据的下一个字节
	--int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组B中
	--int read(byte[] b,int off,int len) 将输入流中最多len个数据字节读入Byte数组

子类

--public class FileInputStream extends InputStream
    --FileInputStream(File file)
    --FileInputStream(String pathname)

子类

--public class BufferedInputStream
    --BufferedInputStream(InputStream in)
    --BufferedInputStream

测试文件的读取

private static void method(){
    //1、创建字节流的读取对象
    //InputStream in = new InputStream();//InputStream是抽象类  无法创建对象
    InputStream in = new FileInputStream(new File);
    InputStream in2 = new FileInputStream("");
    
    //2、开始读取,如果读取到数据的末尾,返回-1
    in2.read();//一个字节一个字节开始读取
    
    //需求:重复读取每个字节
    int b;
    while((b=in2.read()) != -1){
        system.out.println(b);
    }
    
    //3、释放资源
    in.close();
    in2.close();
}
private static void method(){
    //BufferedInputStream是高效的字节流,原因在于底层维护了一个byte[]
    //1、高效的字节流的读取对象
    //InputStream in = new InputStream();//InputStream是抽象类  无法创建对象
    InputStream in =new BufferedInputStream (new FileInputStream(new File(?)));
    InputStream in2 =new BufferedInputStream( new FileInputStream("?"));
    
    //2、开始读取,如果读取到数据的末尾,返回-1
    in2.read();//一个字节一个字节开始读取
    
    //需求:重复读取每个字节
    int b;
    while((b=in2.read()) != -1){
        system.out.println(b);
    }
    
    //3、释放资源
    in.close();
    in2.close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值