import java.io.File\x0d\x0a\x0d\x0aimport java.io.FileInputStream\x0d\x0a\x0d\x0aimport java.io.IOException\x0d\x0a\x0d\x0aimport java.io.InputStream\x0d\x0a\x0d\x0apublic class Test {\x0d\x0a\x0d\x0apublic static void main(String[] args) {\x0d\x0a\x0d\x0a // TODO Auto-generated method stub\x0d\x0a\x0d\x0a try{\x0d\x0a\x0d\x0a getBytesFromFile(new File("C:\\aaa.txt"))\x0d\x0a\x0d\x0a }catch(IOException e){\x0d\x0a\x0d\x0a System.out.println("IOException")\x0d\x0a\x0d\x0a }\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a//碧巧虚 返回一个byte
数组\x0d\x0a\x0d\x0apublic static byte[] getBytesFromFile(File file) throws IOException {\x0d\x0a\x0d\x0aInputStream is = new FileInputStream(file)\x0d\x0a\x0d\x0a// 获取悔燃
文件大小\x0d\x0a\x0d\x0along length = file.length()\x0d\x0a\x0d\x0aif (length >Integer.MAX_VALUE) {\x0d\x0a\x0d\x0a// 文件太大,无法读取\x0d\x0a\x0d\x0athrow new IOException("File is to large "+file.getName())\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a/宽册/ 创建一个
数据来保存文件数据\x0d\x0a\x0d\x0abyte[] bytes = new byte[(int)length]\x0d\x0a\x0d\x0a// 读取数据到byte数组中\x0d\x0a\x0d\x0aint offset = 0\x0d\x0a\x0d\x0aint numRead = 0\x0d\x0a\x0d\x0awhile (offset = 0) {\x0d\x0a\x0d\x0aoffset += numRead\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a// 确保所有数据均被读取\x0d\x0a\x0d\x0aif (offset
回答于 2022-11-16
读入时使用ByteArrayOutputStream缓存,然后转成byte[]
import java.io.*
public class ReadFileBytes{
public static void main(String arg[]) throws FileNotFoundException, IOException{
Integer g[] = new Integer [60]
祥则纳
ByteArrayOutputStream out = new ByteArrayOutputStream()
FileInputStream fin = new FileInputStream("ReadFileBytes.java")
盯陵
int read
byte[] bytes=new byte[1024]
while((read = fin.read(bytes)) >0){
out.write(bytes, 0, read)
}
fin.close()
bytes = out.toByteArray() // 这就是全部的字节数组了。
out.close()
System.out.println(bytes.length)
谨没}
}
那你可以把文件的都分成 一小部分来写啊
如:帆肢
FileInputStream ins = new FileInputStream(file)//定位流
BufferedInputStream br 罩轿肢= new BufferedInputStream(ins)//读取流
OutputStream ous = response.getOutputStream()
/*这段应该就是你原本的写法*/
/*byte b[] = new byte[(int) file.length()]
while(br.read(b) != -1){
//将b中的数据写到客户端的内存
ous.write(b)
物世}*/
/*改成这种就可以了*/
byte b[] = new byte[1024]
int len = 0
while((len = br.read(b)) != -1){
ous.write(b,0,len)
}
望采纳,加分
评论列表(0条)