Как работает именование файлов Java в Netbeans? - PullRequest
0 голосов
/ 28 февраля 2012

У меня структура папок такая:

src\java\com\company\resources\xmlFile.xml

XML-файл находится в пакете com.company.resources. Я использую NetBeans, поэтому вот изображение структуры:

structure

Я пытаюсь передать адрес XML-файла в виде строки этому статическому методу, найденному в другом банке:

public static String createXMLStringFromDocument(String fileName){
    try {
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
                .newInstance();
        InputStream inputStream = new FileInputStream(new File(fileName));
        org.w3c.dom.Document doc = documentBuilderFactory
                .newDocumentBuilder().parse(inputStream);
        StringWriter stw = new StringWriter();
        Transformer serializer = TransformerFactory.newInstance()
                .newTransformer();
        serializer.transform(new DOMSource(doc), new StreamResult(stw));
        return stw.toString();
    } catch (Exception e) {
        return e.toString();
    }
}

Что следует передать?

Это работает, как и ожидалось, в другом проекте, запущенном в Eclipse, где я оставил XML-файл в ROOT проекта. Я передаю имя файла «xmlFile.xml», и оно работает. Однако я не могу заставить это работать в NetBeans. Я получаю файл, который не найден по всем адресам, которые я пробовал:

"src / java / com / company / resources / xmlFile.xml" и т. Д.

Что мне здесь не хватает.

1 Ответ

4 голосов
/ 28 февраля 2012

Поскольку ваш xml находится в пути к классам, вам не нужен полный путь к нему (так как это может быть трудно или невозможно получить, если файл находится в файле .jar).Вам просто нужно получить поток к нему.Использование:

 InputStream is = YourClass.getResourceAsStream("/com/company/resources/xmlFile.xml");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...