вам нужно добавить класс [System.Serializable]
в PlayerItem
, например:
using System;
[System.Serializable]
public class PlayerItem {
public string playerId;
public string playerLoc;
public string playerNick;
}
Чтобы добавить к ответу Йоахима Зауэра, если вам когда-либо понадобится сделать это в статическом контексте, вы можете сделать что-то вроде следующего:
static {
Properties prop = new Properties();
InputStream in = CurrentClassName.class.getResourceAsStream("foo.properties");
prop.load(in);
in.close()
}
(Обработка исключений прошла, как и раньше.)
Никто не упоминает подобное, но даже более простое решение, чем выше, без необходимости иметь дело с пакетом класса. Предполагая, что myfile.properties находится в пути к классам.
Properties properties = new Properties();
InputStream in = ClassLoader.getSystemResourceAsStream("myfile.properties");
properties.load(in);
in.close();
Наслаждайтесь
Следующие два случая относятся к загрузке файла свойств из класса example с именем TestLoadProperties
.
Случай 1: Загрузка файла свойств с помощью ClassLoader
InputStream inputStream = TestLoadProperties.class.getClassLoader()
.getResourceAsStream("A.config");
properties.load(inputStream);
В этом случае файл свойств должен быть в каталоге root/src
для успешной загрузки.
Случай 2: загрузка файла свойств без использования ClassLoader
InputStream inputStream = getClass().getResourceAsStream("A.config");
properties.load(inputStream);
В этом случае файл свойств должен находиться в том же каталоге, что и файл TestLoadProperties.class
для успешной загрузки.
Примечание: TestLoadProperties.java
и TestLoadProperties.class
- два разных файла. Первый файл .java
обычно находится в каталоге src/
проекта, а последний файл .class
обычно находится в каталоге bin/
.
public class ReadPropertyDemo {
public static void main(String[] args) {
Properties properties = new Properties();
try {
properties.load(new FileInputStream(
"com/technicalkeeda/demo/application.properties"));
System.out.println("Domain :- " + properties.getProperty("domain"));
System.out.println("Website Age :- "
+ properties.getProperty("website_age"));
System.out.println("Founder :- " + properties.getProperty("founder"));
// Display all the values in the form of key value
for (String key : properties.stringPropertyNames()) {
String value = properties.getProperty(key);
System.out.println("Key:- " + key + "Value:- " + value);
}
} catch (IOException e) {
System.out.println("Exception Occurred" + e.getMessage());
}
}
}
Мне удалось решить эту проблему с помощью этого вызова
Properties props = PropertiesUtil.loadProperties("whatever.properties");
Extra, вы должны поместить свой файл whatever.properties в / src / main / resources
используйте приведенный ниже код, пожалуйста:
Properties p = new Properties(); StringBuffer path = new StringBuffer("com/al/common/email/templates/"); path.append("foo.properties"); InputStream fs = getClass().getClassLoader() .getResourceAsStream(path.toString());
if(fs == null){ System.err.println("Unable to load the properties file"); } else{ try{ p.load(fs); } catch (IOException e) { e.printStackTrace(); } }
Предполагая, что вы используете класс Properties , используя его метод load , и я предполагаю, что вы используете ClassLoader getResourceAsStream , чтобы получить входной поток ,
Как вы передаете имя, кажется, должно быть в этой форме: /com/al/common/email/templates/foo.properties
public class Test{
static {
loadProperties();
}
static Properties prop;
private static void loadProperties() {
prop = new Properties();
InputStream in = Test.class
.getResourceAsStream("test.properties");
try {
prop.load(in);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
resources
в проектеmaven
– Kasun Siyambalapitiya 27 April 2017 в 05:45