Чтение из файла?

110
17

Пожалуйста, помогите мне сделать такое, скажем, у нас есть текстовый файл 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>");

спросил(а) 2012-11-16T15:53:00+04:00 7 лет, 6 месяцев назад
1
Решение
53

Создайте 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-16T16:25:00+04:00 7 лет, 6 месяцев назад
54

Я бы рекомендовал отказаться от 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-16T16:30:00+04:00 7 лет, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема