Android ゲーム用のシンプルなレベル エディターに取り組んでいます。私は、swing を使用して (グリッドを描画する) GUI を作成しました。タイルを配置したい四角をクリックすると、色が変わります。完了したら、すべてをファイルに書き込みます。
私のファイルは次のようなもので構成されています(これは単なる例です):
アスタリスクを使用して、読み取られるレベル番号を決定し、ハイフンを使用して読み取りを停止するように読者に伝えます。
私のファイル読み取りコードは以下のとおりです。たとえば、読み取る部分を選択しても問題ありません。次のようにして2を渡すと:
readFile(2);
次に、2 番目のセクションのすべての文字を出力します。
私が理解できないのは、「開始」点に到達した後、個々の文字ではなく整数として数値を実際に読み取るにはどうすればよいかということです。
コード
public void readFile(int level){
try {
//What ever the file path is.
File levelFile = new File("C:/Temp/levels.txt");
FileInputStream fis = new FileInputStream(levelFile);
InputStreamReader isr = new InputStreamReader(fis);
Reader r = new BufferedReader(isr);
int charTest;
//Position the reader to the relevant level (Levels are separated by asterisks)
for (int x =0;x<level;x++){
//Get to the relevant asterisk
while ((charTest = fis.read()) != 42){
}
}
//Now we are at the correct read position, keep reading until we hit a '-' char
//Which indicates 'end of level information'
while ((charTest = fis.read()) != 45){
System.out.print((char)charTest);
}
//All done - so close the file
r.close();
} catch (IOException e) {
System.err.println("Problem reading the file levels.txt");
}
}