JAVA读取文件时,怎么显示里面的换行效果

来源:百度文库 编辑:神马文学网 时间:2024/04/29 16:14:38
我在JSP中用下面的程序读取一个文件的内容:
FileInputStream inputtextfile=new FileInputStream(path);
int len=inputtextfile.available();
byte[] buffer=new byte[len];
inputtextfile.read(buffer);
out.print(new String(buffer));
inputtextfile.close();
path是指定一个记事本文件的完整路径和文件名的String类对象,但是运行程序后所有的中文全角空格和换行标志都没了,其中全角空格用?代替了,换行则完全没有了,总体看起来效果非常差!
请问诸位怎么使得中文全角空格和换行可以显示出来?
注意,以上的程序是在用JSP做网页的时候使用的!问题补充:wang_xiao_ting用FileReader和BufferedReader的话,就不能用available方法了,还有BufferedReader的read方法是没有参数的,我最近主要是没时间调这网站,您辛苦一下写完整点.
还有据我所知,浏览器会自动将JSP输出的换行用空格来代替,比如说,out.print("abc")和out.println("abc")输出的结果相比,后者只比前者多个空格.所以是不是得换个思路啊?比如在那个文件里有换行处加上
怎么样?提问者: lewvan850307 - 魔法师 四级 最佳答案<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.io.*" %>


读文件应用示例


<% int size;
FileInputStream inputtextfile=new FileInputStream(path);
int len=inputtextfile.available();

BufferedInputStream buffer1=new BufferedInputStre(inputtextfile);
byte bufferArray[]=new byte[len];
int n=0;
out.println("
path");
while((n=buffer1.read(bufferArray))!=-1)
{String temp=new String(bufferArray,0,n);
out.print(temp);
}
buffer1.close();
inputtextfile.close(); %>


如果是这样的话,程序就不会出现上述的问题了。你使用的是字节流处理方法,最好用在字节输入流中加如缓冲流。一个汉字实际上是占两个字节的存储空间,在使用字节流读取或写入时,稍不注意就会出现乱码的现象。
还有比较好的办法就是使用字符流来处理。把字节流FileInputStream 对象换成字符流FileReader对象,BufferedInputStream缓冲流对象换成BufferedReader。
如果还有什么问题的话,可以加我的QQ号:181721529。
也可以给我发电子邮件hddd001@sina.com
你用字符流对象试了吗?如果没有的话试试。