Синхронизация с txt файлом

Версия Minecraft
1.7.10
Так простенький вопрос можно как то ли организовать синхронизацию ядра мода и txt файлом то есть чтение переменных из txt, еще простомы языком чтобы наш мод мог читать значения которые прописанные в txt файле просто чтобы себе упростить модинг решил этот метод реализовать (По примеру Flans Mod).
Пусть у меня есть test.txt а в нём такая картина.

Код:
test_function {
id: 40000
name: block_test
texture: test (без формата .png)
max_size: 64
entity: false ; Бред какой-то не смотрите :D
}

Думаю бред вопрос но как же без этого.  :s
 

timaxa007

Модератор
5,831
409
672
Типа смотри как реализовано в net.minecraftforge.common.config.Configuration.
Берёшь и читаешь файл, анализируешь что есть в файле как текст, разделяешь текст на части, некоторые части преобразуешь в код.
У меня лишь уродство получилось.
Код:
ClanName:
Test1
Members:

ClanName:
Test2
Members:
test2

ClanName:
Test3
Members:
test3
тест3
Код:
	public void load() {
		clan_group.clear();
		File file = new File(getDirectory(), "clan2.txt");
		if (file.exists()) {
			try {
				BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
				String line;
				ClanGroup cg = null;
				while ((line = br.readLine()) != null) {
					if (line.length() > 0) {
						if ("ClanName:".equals(line) || "Members:".equals(line)) continue;
						if (cg == null) {
							cg = new ClanGroup(line);
						} else {
							cg.addMember(line);
						}
					} else {
						if (cg != null) {
							clan_group.add(cg);
							cg = null;
						}
					}
				}
				if (cg != null) clan_group.add(cg);
				br.close();
			}
			catch (FileNotFoundException e) {e.printStackTrace();}
			catch (IOException e) {e.printStackTrace();}
		} else {
			try {file.createNewFile();}
			catch (IOException e) {e.printStackTrace();}
		}
	}
 
timaxa007 написал(а):
Типа смотри как реализовано в net.minecraftforge.common.config.Configuration.
Берёшь и читаешь файл, анализируешь что есть в файле как текст, разделяешь текст на части, некоторые части преобразуешь в код.
У меня лишь уродство получилось.
Код:
ClanName:
Test1
Members:

ClanName:
Test2
Members:
test2

ClanName:
Test3
Members:
test3
тест3
Код:
 public void load() {
 clan_group.clear();
 File file = new File(getDirectory(), "clan2.txt");
 if (file.exists()) {
 try {
 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
 String line;
 ClanGroup cg = null;
 while ((line = br.readLine()) != null) {
 if (line.length() > 0) {
 if ("ClanName:".equals(line) || "Members:".equals(line)) continue;
 if (cg == null) {
 cg = new ClanGroup(line);
 } else {
 cg.addMember(line);
 }
 } else {
 if (cg != null) {
 clan_group.add(cg);
 cg = null;
 }
 }
 }
 if (cg != null) clan_group.add(cg);
 br.close();
 }
 catch (FileNotFoundException e) {e.printStackTrace();}
 catch (IOException e) {e.printStackTrace();}
 } else {
 try {file.createNewFile();}
 catch (IOException e) {e.printStackTrace();}
 }
 }

Спасибо посмотрю
 

CumingSoon

Местный стендапер
1,634
12
269
Не надо так, плес. Вот способ НАМНОГО ПРОЩЕ.
Код:
public static Gson GSON = new GsonBuilder().create();
public ParsedObject parse(Path path) throws IOException {
        Reader reader = Files.newBufferedReader(path, Charset.defaultCharset());
        ParsedObject res = GSON.fromJson(reader, ParsedObject.class);
        reader.close();
        return res;
}
...
class ParsedObject {
        int level;
        List<String> strings;
}
 
Сверху