0

请帮我做这样的事情,假设我们有一个文本文件test.txt,与此类似:

hello hello hello
<link1>http://stackoverflow.com<link1>

第一行文本,第二个链接包含在<link1>. 我正在打印文件的内容,如下所示:

 if(myName.equals(name)){

                        InputStreamReader reader  = null;
                        try{


                            File file =  new File("C:\\Users\\ваня\\Desktop\\asksearch\\" + list[i]);

                            reader =  new InputStreamReader(new FileInputStream(file), "UTF-8");

                            int b;

                            PrintWriter wr =   response.getWriter();
                            wr.print("<html>");
                            wr.print("<head>");
                            wr.print("<title>HelloWorld</title>");
                            wr.print("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
                            wr.print("<body>");
                            wr.write("<div>");
                            while((b = reader.read()) != -1) {
                                wr.write((char) b );
                            }
                            wr.write("</div>");
                            wr.write("<hr>");
                            wr.print("</body>");
                            wr.print("</html>");
                            wr.close();


                        }

只是一段代码:

while((b = reader.read()) != -1) {
   writer.write((char) b);
}

你要显示,文件本身的第一行,和文件的第二行分别

PrintWriter writer = response.getWriter();
writer.print("<html>");
writer.print("<head>");
writer.print("<title>HelloWorld</title>");
writer.print("<body>");
writer.write("<div>");
// then the first line
writer.write("</div>");
writer.write("<div>");
// then the second line
writer.write("</div>");
writer.print("</body>");
writer.print("</html>");
4

2 回答 2

1

BufferedReader为您的文件创建一个:

File file = new File("test.txt");
BufferedReader br =  new BufferedReader(new InputStreamReader(
                         new FileInputStream(file), "UTF8"));

使用readLine方法读取单行(第一行):

PrintWriter writer = response.getWriter();
writer.print("<html>");
writer.print("<head>");
writer.print("<title>HelloWorld</title>");
writer.print("<body>");
writer.write("<div>");
// here to display the text
writer.write(br.readLine());//this will read the first line
writer.write("</div>");

//And for the second line 

writer.write("<div>");
// here to display the text
writer.write(br.readLine());//this will read the next line i.e. second line
writer.write("</div>");
writer.print("</body>");
writer.print("</html>");

希望这可以帮助。

于 2012-11-16T13:25:05.007 回答
1

我建议不要将 InputStreamReader 作为一种编程类型,您将使用它的方法,并改用 Scanner 或 BufferedReader ......其中的每一个都有一次读取一行的方法:

Scanner in = new Scanner(file);
String line = in.nextLine();

或者

BufferedReader in = new BufferedReader(new FileReader(file));
String line = in.readLine();
于 2012-11-16T13:30:50.817 回答