湖南益阳婚庆公司:JAVA读取文件时,怎么显示里面的换行效果?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/19 02:35:56
我在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")输出的结果相比,后者只比前者多个空格.所以是不是得换个思路啊?比如在那个文件里有换行处加上<br>怎么样?

<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="java.io.*" %>
<html>
<head>
<title>读文件应用示例</title>
</head>
<body>
<% 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("<br>path");
while((n=buffer1.read(bufferArray))!=-1)
{String temp=new String(bufferArray,0,n);
out.print(temp);
}
buffer1.close();
inputtextfile.close(); %>
</body>
</html>
如果是这样的话,程序就不会出现上述的问题了。你使用的是字节流处理方法,最好用在字节输入流中加如缓冲流。一个汉字实际上是占两个字节的存储空间,在使用字节流读取或写入时,稍不注意就会出现乱码的现象。
还有比较好的办法就是使用字符流来处理。把字节流FileInputStream 对象换成字符流FileReader对象,BufferedInputStream缓冲流对象换成BufferedReader。
如果还有什么问题的话,可以加我的QQ号:181721529。
也可以给我发电子邮件hddd001@sina.com
你用字符流对象试了吗?如果没有的话试试。

你用的方法对全角字符是有问题,建议使用BufferedReader来读取。
首先以文件路径为参数建一个FileReader,然后用这个为参数建一个BufferedReader,使用它的readLine()方法读取,换行的话就需要out.print("<br>");了

如果是文本的话,使用如下:
"123456789\n1234"
显示的结果是

123456789
1234

cr lf
楼下的朋友好像错了哦 要cr +lf

ASCII的$0d 和$0a

最近写汇编 嘿嘿对这个熟悉

out.print("<br>");不就是换行吗 ?
out.println("....")也可以啊

用out.print("\n");

也可以的