下面的代码出自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。