如何处理过时的StringBufferInputStream

下面的代码出自struts2的示例,但是其中已经有个StringBufferInputStream类已经过时了,怎么办?


办法是这样的,用ByteArrayInputStream代替StringBufferInputStream,红色代码是新加的:

public class TextResult extends ActionSupport {
    private InputStream inputStream;
    public InputStream getInputStream() {
        return inputStream;
    }

    public String execute() throws Exception {
        inputStream = new StringBufferInputStream("Hello World! This is a text string response from a Struts 2 Action.");
        String str = new String("中文stream");
        inputStream = new ByteArrayInputStream(str.getBytes("UTF-8"));

        return SUCCESS;
    }
}


还需要注意一个问题,为什么要用UTF-8,本人的源程序是GBK格式的,但是用str.getBytes("GBK")就是不行,字符串显示不出来。经过反复试验,基本认定是因为源程序要编译后才运行,编译后,里面的字符串存储的格式全部是unicode了。所以需要用UTF-8。




你可能感兴趣的:(java)