如何将多个图像转换为流并在jsp页面中显示它?

时间:2014-08-04 10:39:44

标签: java jsp servlets

我有一个名为“images”的文件夹我想将该文件夹中的所有图像转换为流并在jsp页面中显示它是否可能如果是这样告诉我如何做它。目前我可以转换单个图像使用以下代码进行流式传输

String filename=request.getParameter("source1");   
String str="C:\\nambi\\"+"new";
InputStream inputStream = new FileInputStream(str);
byte[] bytes = IOUtils.toByteArray(inputStream);
response.setContentType("image/jpeg");
OutputStream outputStream = response.getOutputStream();
outputStream.write(bytes);
outputStream.close();

1 个答案:

答案 0 :(得分:0)

您可以使用SequenceInputStream

  

SequenceInputStream表示其他输入流的逻辑串联。它从一个有序的输入流集合开始,从第一个读取到文件结束,然后从第二个读取,依此类推,直到最后一个包含的输入流到达文件末尾< / p>

以下是exampleone more

示例代码直接在上面的链接中形成:

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;

public class SequenceInputStreamTest {

    public static void main(String[] args) throws Exception {

        FileInputStream fis1 = new FileInputStream("testfile1.txt");
        FileInputStream fis2 = new FileInputStream("testfile2.txt");
        FileInputStream fis3 = new FileInputStream("testfile3.txt");

        Vector<InputStream> inputStreams = new Vector<InputStream>();
        inputStreams.add(fis1);
        inputStreams.add(fis2);
        inputStreams.add(fis3);

        Enumeration<InputStream> enu = inputStreams.elements();
        SequenceInputStream sis = new SequenceInputStream(enu);

        int oneByte;
        while ((oneByte = sis.read()) != -1) {
            System.out.write(oneByte);
        }
        System.out.flush();
    }
}