java - 使用 ObjectOutputStream 返回一个对象

标签 java objectoutputstream

我找到了一段声称使用 ObjectOutputStream 返回对象的 java 代码

     OutputStream outstr = response.getOutputStream();
     ObjectOutputStream oos = new ObjectOutputStream(outstr);

     oos.writeObject(process);

     oos.flush();
     oos.close();

response 是一个 HttpServletResponse 对象。我想知道这段代码是如何工作的,以及如何测试它?

最佳答案

下面是一个简单的例子,展示了如何通过 HTTP 读取序列化对象。

import java.net.URL;
import java.net.HttpURLConnection;
import java.io.ObjectInputStream;

/**
 * This is a simple example to read an object. 
 *
 * This is not production ready code ;-)
 */
public class Sample {

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

        // Change SERVER:PORT/PATH to match your application.
        final URL url = new URL("http://SERVER:PORT/PATH");
        final HttpURLConnection conn = (HttpURLConnection)url.openConnection();

        conn.setRequestMethod("GET");
        conn.setReadTimeout(10000);
        conn.connect();

        final ObjectInputStream is 
        = new ObjectInputStream(conn.getInputStream());

        final Object obj = is.readObject();

        if (obj instanceof String) System.out.println((String)obj);
        else // Convert to object and do whatever.

        is.close();
        conn.disconnect();
    }
}

关于java - 使用 ObjectOutputStream 返回一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049663/

相关文章:

java - android 检查请求是否来 self 的应用程序

java - sql 在给定阈值处停止计数

java - 在哪里可以找到更多 GWT webappcreator 模板?

java - 通过 ObjectOutputStream 发送相同但已修改的对象

java - 可以使用 Jackson 从内部 json 对象获取字段吗?

java - 每次都必须重新创建 ObjectOutputStream

Java - 反序列化包含原始类型的哈希表时出错

Java 对象流和 java.io.EOFException

java - 如何通过SocketChannel以非阻塞方式读写序列化对象?

java - 使用 Guice 框架编写基于注释的方法拦截器时无法注入(inject) java 对象