标签: outputstream

如何将InputStream转换为DataHandler?

我正在研究一个java Web应用程序,其中文件将存储在数据库中.最初我们通过调用getBytes结果集来检索DB中已有的文件:

byte[] bytes = resultSet.getBytes(1);
...
Run Code Online (Sandbox Code Playgroud)

然后DataHandler使用明显的构造函数将此字节数组转换为a :

dataHandler=new DataHandler(bytes,"application/octet-stream");
Run Code Online (Sandbox Code Playgroud)

这很有用,直到我们开始尝试存储和检索更大的文件.将整个文件内容转储到一个字节数组中然后构建一个DataHandler只需要太多内存.

我的直接想法是在数据库中检索数据流,getBinaryStream并以某种方式将其InputStream转换DataHandler为内存有效的方式.不幸的是,似乎没有直接的方法将一个转换InputStream成一个DataHandler.另一个想法我一直在玩从读取数据块InputStream,并将其写入OutputStreamDataHandler.但是...... 当我打电话时,我无法找到一种方法来创建一个DataHandler返回非空的"空" ...OutputStreamgetOutputStream

有没有人这样做过?我很感激你能给我的任何帮助或者正确的方向.

java inputstream outputstream

23
推荐指数
3
解决办法
7万
查看次数

Java - 如何将我的ArrayList写入文件,并将该文件读取(加载)到原始ArrayList?

我正在用Java编写一个程序,它显示了一系列的课后俱乐部(EG Football,Hockey - 由用户输入).俱乐部添加到以下内容ArrayList:

private ArrayList<Club> clubs = new ArrayList<Club>();
Run Code Online (Sandbox Code Playgroud)

通过以下方法:

public void addClub(String clubName) {
    Club club = findClub(clubName);
    if (club == null)
        clubs.add(new Club(clubName));
}
Run Code Online (Sandbox Code Playgroud)

'Club'是一个带有构造函数的类 - 名称:

public class Club {

    private String name;

    public Club(String name) {
        this.name = name;
    }

    //There are more methods in my program but don't affect my query..
}
Run Code Online (Sandbox Code Playgroud)

我的程序正在运行 - 它允许我在我的arraylist中添加一个新的Club对象,我可以查看arraylist,我可以删除任何我想要的等等.

但是,我现在想将该arrayList(俱乐部)保存到文件中,然后我希望能够稍后加载该文件并再次使用相同的arraylist.

我有两种方法(见下文),并一直试图让它工作,但没有任何帮助,任何帮助或建议将不胜感激.

保存方法(fileName由用户选择)

public void save(String fileName) throws FileNotFoundException {
    String tmp = clubs.toString();
    PrintWriter pw = …
Run Code Online (Sandbox Code Playgroud)

java inputstream outputstream arraylist text-files

22
推荐指数
3
解决办法
12万
查看次数

如何将OutputStream中的数据放入ByteBuffer?

在Java中,我需要将OutputStream中的内容(我自己将数据填充到该流中)放入ByteBuffer中.如何以简单的方式做到这一点?

java bytebuffer outputstream

20
推荐指数
3
解决办法
3万
查看次数

Log4J:如何将OutputStream或Writer重定向到logger的writer?

我有一个方法,它在启动后以异步方式运行,使用OutputStream或Writer作为参数.

它充当OutputStream或Writer的录制适配器(它是我无法更改的第三方API).

我怎么能将Log4J的内部OutputStream或Writer传递给该方法?
...因为Log4J吞下了System.out和System.err,我之前使用过.

java logging log4j outputstream writer

20
推荐指数
2
解决办法
3万
查看次数

如何在NancyFx中创建一个图像处理程序

我正在努力从NancyFX中的数据库中将byte []中的Image输出到Web输出流.我没有示例代码足够接近甚至在此时显示.我想知道是否有人解决了这个问题并且可以发布一个代码片段?我基本上只想从存储在我的数据库中的字节数组中返回image/jpeg,然后将其放到Web而不是物理文件中.

image outputstream nancy

20
推荐指数
3
解决办法
6497
查看次数

将InputStream写入HttpServletResponse

我有一个我想要写入HttpServletResponse的InputStream.这种方法由于使用byte []而花费的时间太长

InputStream is = getInputStream();
int contentLength = getContentLength();

byte[] data = new byte[contentLength];
is.read(data);

//response here is the HttpServletResponse object
response.setContentLength(contentLength);
response.write(data);
Run Code Online (Sandbox Code Playgroud)

在速度和效率方面,我想知道什么是最好的方法.

java servlets inputstream outputstream java-ee

19
推荐指数
1
解决办法
6万
查看次数

如何将文件读入InputStream,然后将其写入Scala中的OutputStream?

我正在尝试使用Scala中的基本Java代码从文件中读取并写入OutputStream,但是当我在Scala中使用通常的while(!= -1)时,会给出一个警告"比较Unit和Int的类型! =总是会产生真实的".

代码如下:

    val file = this.cache.get(imageFileEntry).getValue().asInstanceOf[File]
    response.setContentType( "image/%s".format( imageDescription.getFormat() ) )

    val input = new BufferedInputStream( new FileInputStream( file ) )
    val output = response.getOutputStream()

    var read : Int = -1

    while ( ( read = input.read ) != -1 ) {
        output.write( read )
    }

    input.close()
    output.flush()
Run Code Online (Sandbox Code Playgroud)

我应该如何从输入流写入Scala中的输出流?

我最感兴趣的是类似Scala的解决方案.

java integration scala inputstream outputstream

18
推荐指数
4
解决办法
1万
查看次数

Java:FilterInputStream与其他流相比有哪些优点和用途

我一直在阅读InputStream,FileInputStream,ByteArrayInputStream以及它们的使用方式似乎非常清楚(输出流也是如此).

我正在努力的是理解FilterInputStream和FilterOutputStream的用法:

  • 与其他流类相比,使用它有什么好处?
  • 我应该什么时候使用它?
  • 请提供理论解释和基本示例.

java inputstream outputstream stream

18
推荐指数
1
解决办法
1万
查看次数

Android:写入失败:EPIPE(Broken pipe)写入文件出错

我试图以编程方式截取Android屏幕截图.我做了以下代码:

private void getsnap(){
    try{
        Process sh = Runtime.getRuntime().exec("su", null, null);
        OutputStream os = sh.getOutputStream();
        String filePath = this.getFilesDir().getPath().toString() + "/fileName1.jpeg";
        os.write(("/system/bin/screencap -p " + filePath).getBytes("ASCII"));
        os.flush();
        os.close();
        sh.waitFor();       
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

java.io.IOException: write failed: EPIPE (Broken pipe)

请有人帮忙吗?我已经检查过其他帖子,但我找不到解决问题的方法.


编辑:

请注意,错误发生在行中os.write().

android outputstream file epipe android-permissions

18
推荐指数
1
解决办法
3万
查看次数

C格式的I/O函数(printf,sprintf等)是否比IOStream更受欢迎,如果是这样,为什么?

我最近一直在查看其他人编写的很多代码,并且碰巧注意到每个人都使用"printf"风格的C函数,但在学校学到的C++函数(特别是cout)似乎并不那么受欢迎.

这是一个有效的观察,是否有理由这样做?惯例?

谢谢,

[R

c++ io outputstream

16
推荐指数
2
解决办法
2138
查看次数