int read(byte[] b)
Reads up to b.length bytes of data from this input stream into an array of bytes.这是jdk文档! 从输入流读出byte数组长度数据 到b数组!
Reads up to b.length bytes of data from this input stream into an array of bytes.这是jdk文档! 从输入流读出byte数组长度数据 到b数组!
解决方案 »
- [求教]返回在两字符串中第一个相同的子串(大于1个字符),并将子串输出
- 哪位大侠可以推荐几本JavaEE项目开发实战书籍?
- 以下html代码为什么会乱码?
- 各位大侠,谁有阴历转农历,农历转阴历的java源码?在下多谢啦!
- tomcat报错:Servlet.service() for servlet jsp threw exception
- URL提交表单问题~~~~~~
- tomcat的问题!~!~!
- 怎么样才能彻底支持jdbc2.0里面的方法!!
- 怎样保存文件到客户端啊?
- 关于接口
- <jsp:include page="/includes/lend.page.jsp" />下的页面数据传递不进来怎么处理
- Eclipse问题
比如下面的读取代码
public static void main(String[] args) {
try {
// 创建文件输入流对象
FileInputStream is = new FileInputStream("TestFile.txt");
// 设定读取的字节数
int n = 512;
byte buffer[] = new byte[n];
// 读取输入流
while ((is.read(buffer, 0, n) != -1) && (n > 0)) {
System.out.print(new String(buffer));
}
System.out.println();
// 关闭输入流
is.close();
} catch (IOException ioe) {
System.out.println(ioe);
} catch (Exception e) {
System.out.println(e);
}
}
这个不是推的,但是正常设置为1024或者512或者2048都可以,设置有时候我们可以完全设置为这个文件的大小(is.available()),如果设置为文件的大小、这样就可以一次性把内容都读到比特数组里
{
try {
// 创建文件输入流对象
FileInputStream is = new FileInputStream("TestFile.txt");
// 设定读取的字节数
int n = 0;
byte[] buffer = new byte[1024];
// 读取输入流
while (-1 != (n = is.read(buffer, 0, buffer.length)))
{
String temStr = new String(buffer,0,n);
System.out.print(temStr);
}
System.out.println();
// 关闭输入流
is.close();
} catch (IOException ioe) {
System.out.println(ioe);
} catch (Exception e) {
System.out.println(e);
}
}
我就通俗点跟你说吧,这个读入字符串的过程就相当于字符串内容读取的过程,一个字符串就相当于一个大水缸里面的水,我们定义的数组就相当于一个盛水的容器,read就相当于一个用前面那个容器盛水的动作,每调用一次,我们就把水缸里的水转移一次,直到最后把水缸里的水全部转移完毕,这个字符读取过程就结束了。所以就像字符数组定义多大,定义大的话少读几次,小的话多多读几次,只是耗费系统资源不同而已,一般来说定义一个字节的整数倍,毕竟目前的所有字符都是以字节为最小单位的,这就是为什么一般定义成1024或者是2048了
这个不是推的,但是正常设置为1024或者512或者2048都可以,设置有时候我们可以完全设置为这个文件的大小(is.available()),如果设置为文件的大小、这样就可以一次性把内容都读到比特数组里请教下
一次性把内容都读到比特数组里 会耗费系统资源吧
所以一般不这样设计 都是用1024 或者2048 来分布读入?
可以这样理解吗
但是如果这个文件有个500M或者更大,一次读这么多数据到内存是不太好的做法,当然这个时候应该分批次读
以上涉及的数据只是个人举个例子,具体多大文件一次性读出来好还是分批次读出来好,这个就不好说了,楼主可以针对某个情况做些测试
但是如果这个文件有个500M或者更大,一次读这么多数据到内存是不太好的做法,当然这个时候应该分批次读
以上涉及的数据只是个人举个例子,具体多大文件一次性读出来好还是分批次读出来好,这个就不好说了,楼主可以针对某个情况做些测试恩好的
谢谢你。