使用Java一次一个一个地发送文件

时间:2012-05-24 10:51:51

标签: java file-io

我的服务器端应用程序使用java,客户端使用phonegap。当用户登录我的应用程序时,我需要传输大量的图像文件。

我将这些图像文件转换为base64格式并将其放入json对象。当我将此json对象发送到客户端时,我发现java内存不足错误。

如何在一个请求中逐个发送这些图像文件,因为一次发送所有文件会导致java内存错误.pl帮助我。

这是我的代码:

File folderName = new File(processingFolder+"/"+f1[i].getName());
File[] folderFiles= folderName.listFiles();

for(int m=0;m<folderFiles.length;m++)
{
 System.out.println("folderFiles are:"+folderFiles[m]);
 String s1 = new String();
 File readfile = new File(folderFiles[m].toString());
 System.out.println(readfile.exists() + "!!");

 FileInputStream fis = new FileInputStream(readfile);
 ByteArrayOutputStream bos = new ByteArrayOutputStream();

 byte[] buf = new byte[1024];
 try {
     for (int readNum; (readNum = fis.read(buf)) != -1;) {
         bos.write(buf, 0, readNum); 
         //no doubt here is 0
         /*Writes len bytes from the specified byte array starting at offset 
         off to this byte array output stream.*/
     }
 }


 catch (IOException ex) {
 }
 byte[] bytes = bos.toByteArray();

 String result2 = Base64.encode( bytes );
 json1.put(folderFiles[m].getName(), result2);

1 个答案:

答案 0 :(得分:0)

我为我的问题找到了解决方案  我已经以json格式将所有文件名发送到客户端。通过在客户端循环文件名,我向服务器发送请求,并为每个请求获取单个文件。然后我再次在我的客户端写这个文件。