Как именование файлов Java работает в Netbeans?

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

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

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

структура

Я пытаюсь передать адрес файла 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 в корне проекта. Я передаю имя файла «xmlFile.xml», и оно работает. Однако я не могу заставить это работать в netbeans. Я получаю файл, не найденный со всеми адресами, которые я пробовал:

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

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


person Danedo    schedule 27.02.2012    source источник
comment
Будет ли он работать для NetBeans, если вы сделаете то же самое, что и Eclipse, т.е. поместите его в корень проекта?   -  person DNA    schedule 28.02.2012


Ответы (1)


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

 InputStream is = YourClass.getResourceAsStream("/com/company/resources/xmlFile.xml");
person Bozho    schedule 27.02.2012
comment
если вы используете косую черту в начале, она становится относительно корня пути к классам - person Bozho; 28.02.2012
comment
(!) Я понимаю. Это гораздо лучший способ делать вещи. Спасибо. - person Danedo; 28.02.2012