创建文本文件,tar文件并将其放入输入流中?

时间:2015-11-18 21:12:28

标签: java inputstream tar fileoutputstream

我想将一个只包含一个字符串的文本文件放入tar存档并将此tar文件放入输入流......我想“动态”执行此操作,而不将任何临时文件保存到磁盘中...

我试用了这段代码,最后我得到了一个文件:

FileOutputStream fos = null;
    try {
        fos = new FileOutputStream ("helloworld.txt");
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } 

    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    String config = "HelloWorld!";
    byte[] b = config.getBytes();
    try {
        baos.write(b);
        baos.writeTo(fos);
        fos.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我看了一下jtar库: https://code.google.com/p/jtar/

所以我想把那个文本文件直接放到那个tar中,但我也不需要那个新的FileOutputStream(“c:/test/test.tar”),而是想把它直接放到输入流中。

我对所有那些输入流/输出流有点困惑,我不确定是否有可能在这些流中移动而不是创建临时文件来执行此操作。

THX& BR

2 个答案:

答案 0 :(得分:1)

摆脱FileOutputStreambos.writeTo(),然后执行:

ByteArrayInputStream bais = new ByteArrayInputStream (baos.toByteArray());

代替。

答案 1 :(得分:0)

我不确定这是否是最好的方法,但这似乎有效,但并不完全像我想象的那样:

id type1 type2
__ ____ ______
1    5    3