最近要做一个编辑器。
遇到以下问题,第一是换行问题,这个我直接在后台每行结尾加上了前台html需要的换行符。
第二是bufferReader总会读取最后一行的内容,从源码可以看出
while (true) {
pos = end;
if (fillBuf() == -1) {
// If there's no more input, return what we've read so far, if anything.
return (result.length() > 0) ? result.toString() : null;
}
...
if (nextChar >= nChars) { /* EOF */
if (s != null && s.length() > 0)
return s.toString();
else
return null;
}
简单的说就是总会返回一个结果,如果没有就是null
这个null因为我前面做的处理也会返回到前台,所以只需要在处理流的时候做下判断即可。
中文乱码问题:
查看源码可知,如下
public InputStreamReader(InputStream in, String charsetName) throws UnsupportedEncodingException { super(in); if (charsetName == null) throw new NullPointerException("charsetName"); sd = StreamDecoder.forInputStreamReader(in, this, charsetName); }
所以只要
BufferedReader reader;
try {
reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent(),"utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}