public String UploadFileChunkBytes(byte[] Bytes,int Position,String FileName)
throws Exception
{
//"d:\\Server\\Upload\\" 为服务器端路径
String ServerPath = "d:\\Server\\Upload\\";
java.io.RandomAccessFile raf = new java.io.RandomAccessFile(ServerPath + FileName,"rws");
raf.skipBytes(Position);
raf.write(Bytes);
//该 Bytes 的字节要写到 服务器端 相应文件的从 Position 开始的字节
raf.close();
raf = null;
System.gc();
return FileName + " 文件块: 位置[" + Position + "," + (Position + Bytes.length) + "] 大小(" + Bytes.length + ") 上传成功!";
}网上找的一段上传文件的webservice代码,在调用这个方法之前先建立了一个文件总长度的空文件,然后循环调用UploadFileChunkBytes这个方法,分块把文件上传。
我现在要解析这个上传的xml文件,不想再把文件写到磁盘上,直接在内存里解析,能不能把每次上传的byte[]都连接在一起转换为一个inputStream,传给dom4j建立document。
throws Exception
{
//"d:\\Server\\Upload\\" 为服务器端路径
String ServerPath = "d:\\Server\\Upload\\";
java.io.RandomAccessFile raf = new java.io.RandomAccessFile(ServerPath + FileName,"rws");
raf.skipBytes(Position);
raf.write(Bytes);
//该 Bytes 的字节要写到 服务器端 相应文件的从 Position 开始的字节
raf.close();
raf = null;
System.gc();
return FileName + " 文件块: 位置[" + Position + "," + (Position + Bytes.length) + "] 大小(" + Bytes.length + ") 上传成功!";
}网上找的一段上传文件的webservice代码,在调用这个方法之前先建立了一个文件总长度的空文件,然后循环调用UploadFileChunkBytes这个方法,分块把文件上传。
我现在要解析这个上传的xml文件,不想再把文件写到磁盘上,直接在内存里解析,能不能把每次上传的byte[]都连接在一起转换为一个inputStream,传给dom4j建立document。
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(inputStream);
问题是能不能把每次上传的byte[]都连接在一起转换为一个inputStream是怎么才能得到这个inputStream
-------------
ByteArrayInputStream(byte[] buf)
byte[] bytes ; //将你的byte[] 连起来.
ByteArrayInputStream ins = new ByteArrayInputStream(bytes);
ByteArrayInputStream ins = new ByteArrayInputStream(bytes);第二次怎么写呢?再建立一个ByteArrayInputStream对象??
还是继续ins,要怎么继续ins呢?
就是在你的所有文件都上传完了,在最后创建一次ByteArrayInputStream对象.
自己实现read()方法,主要就是读完了一块byte[]就把流的指针转向到下一个byte[]
可以参考BuffedInputStream的写法。