この本当に迷惑なエラーが発生しています。私は何日もそれに取り組んできましたが、極端な量の研究も成功していません. 基本的に、コードが行っていることは、ファイルを読み取ることですが、読み取り後にテキストを削除するようです。そして、特定の行のみ。これは私の Reader メソッドです:
synchronized public static String getValue(String path, String filename, Boolean useColors, String folder){
try{
while(!TxtWriter.isResting());
FileRequest req = writer.getRelitive(filename, path);
if(req==null){
File f = new File(Conquest.FilePaths+"/"+folder, filename);
if(!f.getParentFile().exists())f.getParentFile().mkdirs();
if(f.exists()){
BufferedReader in = new BufferedReader(new FileReader(f));
String a;
while((a=in.readLine())!=null){
if(a.startsWith("'"+path+"'"+":")){
in.close();
a=a.substring(path.length()+3);
if(useColors)a=colorCoder(a);
return a;
}
}
in.close();
}else TxtWriter.createFile(filename, folder);
}else return ((useColors)?colorCoder(req.getMessage()):req.getMessage());
}catch(Exception e){
System.err.println("[Conquest/TxtReader] Error reading file "+filename+"!");
e.printStackTrace();
}
return null;
}
これは、読み取る前のファイルです。
'Kingdom':Devonel
'Flags':Leader
メソッドを呼び出します
public String getPlayerKingdom(String p){
String in = TxtReader.getValue("Kingdom", p+".txt", false, "Citizens");
return ((in==null)?in:"None");
}
「なし」が返され、ファイルには だけが'Flags':Leader
含まれ、他には何もありません。
私を本当に困惑させ、特定の方法は機能しますが、他の方法は機能しません。それらがまったく同じコードであっても、文字列が異なります。ここにあるこのメソッドは同じものですが、想定どおりに機能します。
public int getResource(String kingdom, String name){
String out = TxtReader.getValue("R-" + name, kingdom + ".txt", false, "Kingdoms");
if(out==null)return 0;
return Integer.valueOf(out);
}
誰かが助けてくれたら、私は感謝します。:)