请问java输入流中当文件大于byte数组长度的时候,该如何循环读取?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问java输入流中当文件大于byte数组长度的时候,该如何循环读取?相关的知识,希望对你有一定的参考价值。
如这个程序,假设我要读取的文件超过1KB了,我要如何每次读1KB,然后读完整个文件,使用read的返回值不为-1的话,这个while循环该放在哪?谢谢
byte[] data = new byte[1024];int len = fis.read(data);
//循环将文件fileText.txt中的内容读取到字节数组中
StringBuilder sb = new StringBuilder();
sb.append(new String(data, 0, len));
while (len != -1)
len = fis.read(data);
if (len != -1)
sb.append(new String(data, 0, len));
System.out.println(sb); 参考技术A read()方法返回参数是int型变量 等于-1就代表已经读完了不等于就,循环读
字符输入流读取文本文件ReaderFileReaderBufferedReader
字符输入流读取文本文件
1.Reader类(读取字符流的抽象类)
※Reader类的常用方法
方法名称 |
说明 |
int read() |
从输入流中读取单个字符 |
int read(byte[] c) |
从输入流中读取c .length长度的字符,保存到字节数组c中,返回实际读取的字符数 |
int read(byte[] c, int off , int len) |
从输入流中读取最多len长度的字节,保存到字节数组c中,保存的位置从off开始,返回实际读取的字符数 |
void close() |
关闭流 |
2.字符输入流FileReader类
常用构造方法:
※ FileReader (String name)
Reader fileObject=new FileReader (“C:\\test.txt”);
3.使用FileReader读取文件步骤:
1. Import java.io.*; (IOException, Reader, FileReader)
2. Reader fileObject=new File Reader (“C:\\test.txt”);
3.利用FileReader类的方法读取文本文件的数据
int r= fileObject .read (); //读取单个字符
//将文件中的内容传入数组,以数组的形式读取出来 char[ ] chars=new char[1024]; int length= fileObject. Read( chars); System.out.println (Arrays. tostring (chars)) ; |
4. fileObject .close (); //关闭文件输入流对象
4.字符输入流BufferedReader类
常用构造方法:
※ BufferedReader (Reader in)
Reader fileObject=new FileReader (“C:\\test.txt”);
BufferedReader br=new BufferedReader (BufferedReader);
5.使用BufferedReader读取文件步骤:
1. Import java.io.*; (IOException, Reader, BufferedReader)
2.创建一个BufferedReader对象
Reader fr=new FileReader (“C:\\test.txt”);
BufferedReader br=new BufferedReader (fr);
3.利用BufferedReader类的方法读取文本文件的数据
br. readLine (); //读取一行数据,返回字符串
【readLine()是BufferedReader类特有的方法】
4. br .close ();
fr .close ();
◎ FileReader和BufferedReader区别:
BufferedReader类带有缓冲区,它可以先把一批数据读到缓冲区,接下来的读操作都是从缓冲区内获取数据,
避免每次都从数据源读取数据进行字符编码转换,从而提高读取操作的效率。
以上是关于请问java输入流中当文件大于byte数组长度的时候,该如何循环读取?的主要内容,如果未能解决你的问题,请参考以下文章
字符输入流读取文本文件ReaderFileReaderBufferedReader