IOException Загрузка данных в BlazegraphEmbedded
У меня проблема с загрузкой файла свойств Blazegraph во встроенный экземпляр. Когда я пытаюсь импортировать мой файл .properties в мой класс Java, я получаю следующую ошибку:
Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.Reader.read(Unknown Source)
at java.util.Properties$LineReader.readLine(Unknown Source)
at java.util.Properties.load0(Unknown Source)
at java.util.Properties.load(Unknown Source)
at blazegraph_tinkerpop_tryout.blazegraph_data_load.loadProperties(blazegraph_data_load.java:55)
at blazegraph_tinkerpop_tryout.blazegraph_data_load.main(blazegraph_data_load.java:32)
Позвонить loadProperties
функция из основного:
Properties props = loadProperties("sampleprops.properties");
мой loadProperties
функция (проверка правильности пути к файлу, затем отправка читателю):
public static Properties loadProperties(String resource) throws IOException
{
Properties p = new Properties();
Path path = Paths.get(resource);
Boolean bool = Files.exists(path);
if (bool)
{
System.out.println("File was found. Attempting data load...");
InputStream is = blazegraph_data_load.class.getResourceAsStream(resource);
p.load(new InputStreamReader(new BufferedInputStream(is)));
return p;
}
System.out.println("The file you entered was not found.");
return null;
}
Вот как выглядит мой файл sampleprops.properties:
com.bigdata.journal.AbstractJournal.bufferMode=DiskRW
com.bigdata.journal.AbstractJournal.file=blazegraph.jnl
Я следовал инструкциям по настройке из примера приложения Blazegraph, описанного здесь. Если это имеет значение, я использую реализацию Blazegraph/Tinkerpop3, найденную здесь.
1 ответ
Решение
Я нашел обходной путь: я поменял getResourceAsStream
метод к FileInputStream
метод.
Проблема была с размещением моего файла свойств. FileInputStream
метод кажется более щадящим в том, где вы размещаете файл.