FileInputStream简介说明
下文笔者讲述FileInputStream的简介说明,如下所示
FileInputStream初始化方法
FileInputStream(String name)
FileInputStream(File file)
//直接通过文件地址初始化
FileInputStream fis = new ileInputStream("D:/test/test1.txt");
//通过File对象初始化
File file = new File("D:/test/test1.txt");
FileInputStream fis = new FileInputStream(file)
获取文件大小
FileInputStream fis = new ileInputStream("D:/test/test1.txt");
fis.available(); //文件大小
读取文件内容
获取文件内容的实现思路:
read():
读取一个字节(返回对应字节的ascii码值)
read(byte b[]):
根据字节缓冲数组的长度,进行读取(返回读取的字节数)
read()示例
FileInputStream fis = new ileInputStream("D:/test/test1.txt");
while (true){
//read() 方法:从输入流对象中,一次读取一个字节(返回的是对应字节的ascii码值,int类型)
int hasRead = fis.read();
//当读取到末尾,返回-1,代表文件读取结束
if(hasRead == -1){
break;
}
System.out.print((char) hasRead);
//打印文件中字符的ascii值
//转化为字符:KH96abcdefghijk
}
//最后一定要关闭资源
fis.close();
read(byte b[])的功能及示例
带缓冲字节数, 读取文件内容, 一次读取就不是一个字节, 而是根据字节缓冲数组的长度,进行读取例
FileInputStream fis = new ileInputStream("D:/test/test1.txt");
//带缓冲字节数,根据字节缓冲数组的长度,进行读取
byte[] bytes = new byte[5];
//容易出错的判断方式:read()方式执行一次,就读取一个字节(没有保存,读完就扔,字节丢失),不可以作为判断条件
while(fis.read() != -1){
//循环读取内容
//带缓冲数组的读取,方法返回的是读取的字节数,不是读取的内容
//每次读取的数据,是由缓冲字节数组长度决定,每次都是从上一次读取的位置后开始继续读取,每次都是将读取的内容依次放入缓存数组
int hasRead = fis.read(bytes);
System.out.println("读取的字节数:"+hasRead);
System.out.println(new String(bytes));
System.out.println("读取文件成功");
}
//注意此处应放入到 finally中
fis.close();
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


