servlet上用DataOutputStream做输出,使用他的函数writeUTF(String),可能由于字符串超长(大约上MB),报UTF格式错误,,怎样处理,谢谢  

解决方案 »

  1.   

    这是我写的代码。。怎么分次写入啊。。
    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();

    DataOutputStream out = new DataOutputStream(byteOut); try {
    // 向APPLET发送结果 out.writeUTF(resulet);
    System.out.println("in servelet --------3");
    byte buf[] = byteOut.toByteArray();
    DataOutputStream dataout = new DataOutputStream(resp
    .getOutputStream());
    dataout.write(buf);
    dataout.flush();
    dataout.close();
    System.out.println("in servelet --------4");
    } catch (RuntimeException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    System.out.println("in servelet --------error");
    }
      

  2.   

    把你的错误贴上来看看,我怀疑字符串格式有问题。你还是用write的,输出byte[] 好了
      

  3.   

    异常代码:
    java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source)
    at sun.plugin.liveconnect.SecureInvocation.access$300(Unknown Source)
    at sun.plugin.liveconnect.SecureInvocation$CallMethodThread.run(Unknown Source)
    Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin.javascript.invoke.JSInvoke.invoke(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
    at sun.plugin.liveconnect.PrivilegedCallMethodAction.run(Unknown Source)
    ... 6 more
    Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://192.168.0.227:8080/reframesample/PrintServlet?operation=sys.queryy&template=printreport.xml
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at PrintApplet.getPrintData(PrintApplet.java:72)
    ... 16 more
      

  4.   


    这是我在applet里得到字符串的代码
    URL url1 = new URL(URL);
    URLConnection connection1 = url1.openConnection();
    DataInputStream inStream = new DataInputStream(connection1.getInputStream());
    // 读取SERVLET发送过来的数据
    this.printStr = inStream.readUTF();