Как запустить CSV с использованием Java и вывод в браузере

1

Это мой класс java для чтения csv файла testnews.csv, я хочу напечатать этот вывод в веб-браузере, поэтому я использую jsp, но он показывает, что тип ошибки недействителен.

Testnews.java:

package testnews;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Testnews {
  public static void main(String[] args) {
  Testnews obj = new Testnews();
  obj.run();
 }

  public void run() {
      /**************************************/
      Date dNow = new Date();
      SimpleDateFormat ft = new SimpleDateFormat ("ddMMyyyy");
      String dt = ft.format(dNow).toString();

    /***************************************/
    String csvFile = ("D://news//"+dt+"//testnews.csv");
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";
            try {
 br = new BufferedReader(new FileReader(csvFile));
 while ((line = br.readLine()) != null) {
 String[] country = line.split(cvsSplitBy);
 System.out.println(country[4] + country[5]);
 }
 } catch (FileNotFoundException e) {
        e.printStackTrace();
            } catch (IOException e) {
        e.printStackTrace();
            } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    System.out.println("Done");
  }
}

index.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8" import="testnews.*" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <%
            Testnews tn = new Testnews();
            %>
            <%= tn.run() %>
    </body>
</html>

testnews.csv:

1.0.0.0 1.0.0.255   16777216    16777471    AU  Australia
1.0.1.0 1.0.3.255   16777472    16778239    CN  China
1.0.4.0 1.0.7.255   16778240    16779263    AU  Australia
1.0.8.0 1.0.15.255  16779264    16781311    CN  China
1.0.16.0    1.0.31.255  16781312    16785407    JP  Japan
1.0.32.0    1.0.63.255  16785408    16793599    CN  China
1.0.64.0    1.0.127.255 16793600    16809983    JP  Japan
1.0.128.0   1.0.255.255 16809984    16842751    TH  Thailand
  • 1
    Пожалуйста, переформатируйте свой вопрос
  • 2
    Я исправил ваше форматирование ... в будущем, пожалуйста, научитесь размещать код (отступ в 4 пробела, исключение лишних пустых строк, последовательный отступ кода). Также укажите, ГДЕ происходит ошибка и скопируйте / вставьте фактическое сообщение об ошибке.
Показать ещё 1 комментарий
Теги:
csv
jsp

2 ответа

0

Ошибка в строке:

<%= tn.run() %>

правильно?

Оператор <%= it для чтения значений. Функции также возвращают значения, как вы, конечно, знаете. Итак, если вы хотите, чтобы команда <%= tn.run() %>, вы должны объявить функцию "run" и вернуть ей некоторое значение.

Вместо вызова System.out.println(country[4] + country[5]); создать одну строку и объединить результаты. В конце вашей функции верните его вызывающему.

Надеюсь, поможет.

0

Вы никогда не должны этого делать: вы помещаете форматирование своей страницы в код Java. Вы должны попытаться найти учебник по программированию сервлета и:

  • объявить сервлет для обработки URL-адреса
  • сервлет читает файл csv и помещает его данные в атрибуты запроса как список списков
  • иметь сервлет вперед в jsp
  • создайте jsp, который будет использовать атрибут request, и просто форматирует

Нет прямого ответа на вашу проблему:

Вы должны иметь Testnews.run() записи в StringWriter и вернуть полученную строку.

public String run() {
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    ...
    pw.println(country[4] + country[5]);
    ...
    return sw.toString();
}

но BEWARE, поскольку вы не форматируете в HTML, результирующая страница будет плохой...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню