inputstream,java中有按字节读取的InputStream和按字符读取的Reader?
JAVA的IO流读取可以分为两种流读取:

1、字节流:可以用于读写二进制文件及任何类型文件
2、字符流:可以用于读写文本文件,不能操作二进制文件
其中字节流就是以字节读取的。
字节流和字符流的区别:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
关于java的inputStream究竟一次会读多少byte?
inputStream有多个read方法,带不同参数 如果直接read(),只读一个字节 如果read(byte[]),则看参数的数组有多长,就读多少,如果stream中的数据不够,那有多少读多少 如果read(byte[],offset,length),比较复杂一些,最多读取length个字节的数据,具体的可以看一下JDK的api文档
filereader和fileinputstream区别?
FileInputStream 类或者 FileReader 类的构造函数有多个,其中典型的两个分别为:一个使用 File 对象为参数;而另一个使用表示路径的 String 对象作为参数;自己以前一直觉得直接用了 String 指定路径就可以了,一直不明白为什么很多人都先构造一个 File 对象,现在终于明白了,“如果处理文件或者目录名,就应该使用 File 对象,而不是字符串。”!
inputstream怎么转换成字节数组?
Java中的I/O机制都是基于数据流进行输入和输出的,将流转换成字节数组保存下来是数据流传输必不可少的一部分。转换的代码如下(在具体场景下需要处理流的关闭问题)
public static byte[] toByteArray(inputstream input) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[1024*4];
int n = 0;
while (-1 != (n = input.read(buffer))) {
output.write(buffer, 0, n);
}
return output.toByteArray();
}
怎么使用ifstream读取文件?
1、 首先,通过ifstream,的open函数打开现有文件,然后通过get函数读取文件中的每个字符。
2、 从输出结果来看,文件中的所有内容都已成功输出。
3、 打开功能在ifstream,你可以用一种传送方式打开一个文件,比如只读。
4、 ifstream还提供了getline函数来逐行读取文件的内容。
5、 getline函数也可以成功读取文件内容并输出到终端。
6、 通过Read函数一次性读取文件中的所有内容。
7、 从输出中,read函数也可以读取文件内容。


还没有评论,来说两句吧...