java 如何通过 FileInputStream 获取文件名、文件属性的求助

java 如何通过 FileInputStream 获取文件名、文件属性的求助,第1张

public class

File extends Object

implements SerializableComparable<T>

public class

FileInputStream extends InputStream(抽象类)

implements Closeable

从这个继承关系你就知道了 是不可能用FileInputStream 去 *** 作获得file的文件和属性的 你只有实现File类 才能实现 FileInputStream 只是用来读写文件内容的

while(isread()!=-1){

    b[i]=(byte) isread();

    i++;

}

这里是错的,当判断isread() != -1的时候这个字节就已经被读取了,于是b[i] = (byte) isread();这里读取的就是后面一个字节,自然会乱码。解决方法如下:

byte c = (byte)isread();

while(c != -1){

    b[i] = c

    i++;

    c = (byte)isread();

}

还有一种更方便的:

byte[] b = new byte[isavailable()];

isread(b);

BufferedReader构造函数所接受的参数只有Reader,而没有File。因此从类的定义的角度来说不能用BufferedReader直接读取文件。

从类的设计层面来说,BufferedReader这个类创建的初衷是用来缓冲处理其他的流,比如FileReader或者InputStreamReader,缓冲之后能够提高输入流的效率。具体应用层面来说,BufferedReader类相对于这些类多了一个readline函数,能够整行整行地读取,而不必只能用read一个一个字符读取,这样大大地提高了读取文件的效率。

以上就是关于java 如何通过 FileInputStream 获取文件名、文件属性的求助全部的内容,包括:java 如何通过 FileInputStream 获取文件名、文件属性的求助、java 用FileInputStream中read方法读取文件出现乱码、为什么使用java读取本地文件时要先使用InputStreamReader将字节流转换为字符流对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10102619.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存