你定义一个大点的byte[]暂存不就得了
读完后不救知道长度了?
读完后不救知道长度了?
解决方案 »
- 生产者-消费者遇到的问题
- 有个问题搞不懂
- JAVA如何提取数据库里各个表的当天的记录(假设1个库里各个表的时间的字段名不一定)
- java Swing 中实现下载一个页面里面的所有内容
- 高手请问:谁知道网页动态屏蔽的原理?
- jsp连接sqlserver2000的问题
- 如何像Exception.printStackTrace()一样获得调用方法的trace
- 急需帮助:一个JAVA问题,关系着我的前途,请各位多多指教
- 求一份社区类的网站代码,最好是源码,有说明,能直接运行的
- vector里的元素转别的类型怎么转?[在线]
- 请问java.util.hashtablc 与 java.util.arraylist有何不同?谢谢!
- javamail中文问题
或者这样也可以。
long lFileLenth;
byte filebyte[];
File myfile=new File(sfile);
//get the length of file
lFileLenth=myfile.length();
//create a buffer for file
filebyte=new byte[(int)lFileLenth];
FileInputStream file=new FileInputStream(myfile);
file.read(filebyte,0,(int)filelenth);
如果你的目的为了拷贝或者文件很大时,建议使用第一种方法,用循环作。
在读文件时要捕获溢出异常,然后扩大byte[]的大小。try{
...
}catch(...){
byte[] aTemp = new byte[nLength + nIncrement];
System.arraycopy(aBytes, 0, aTemp, aBytes.length);
aBytes = aTemp;
}其实Vector类就是类似这样做的: