Абсолютный доступ к файлам на сервере Tomcat в war webapp

У меня есть веб-приложение Spring которого.war файл был загружен на сервер Tomcat. Большинство основных функций работают по назначению - просмотры страниц и отправка форм.

Теперь моя проблема заключается в том, что моему веб-приложению нужно читать и записывать файлы, и я не знаю, как этого добиться (возврат файлов ввода-выводаjava.lang.NullPointerException).

Я использовал следующеекод для получения абсолютного пути к данному файлу предложеноТити Вангса бен Дамхор знать путь относительно сервера:

HttpSession session = request.getSession();
ServletContext sc = session.getServletContext();
String file = sc.getRealPath("src/test.arff");
logger.info("File path: " + file);

Вот выходной путь:

/home/username/tomcat/webapps/appname/src/test.arff

Но когда я проверил каталог файлов черезWinSCP, файл'Фактический путь:

/home/username/tomcat/webapps/appname/WEB-INF/classes/test.arff

Вот мои вопросы:

Как я могу превратить эти пути в нечто вродеC:/Users/Workspace/appname/src/test.arff (оригинальный путь в моей локальной машине, которая отлично работает)? Это'с серверамиApache Tomcat 6.0.35 а также .Apache Tomcat 6.0.35Почему код возвращает другой путь, а не реальный путь?Если файловый ввод / вывод не применим, какие альтернативы я могу использовать?

PS Мне просто нужно получить доступ к двум файлам (< 1 МБ каждый) так что я неЯ думаю, что мне может понадобиться использовать базу данных, чтобы содержать их, как предложеноминус вэта тема.

Файловый ввод / вывод

Ниже приведен код, который я использую для доступа к нужному мне файлу.

BufferedWriter writer;
    try {
        URI uri = new URI("/test.arff");
        writer = new BufferedWriter(new FileWriter(
            calcModelService.getAbsolutePath() + uri));

        writer.write(data.toString());
        writer.flush();
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

Ответы на вопрос(4)

Ваш ответ на вопрос