6

对于一个非常基本的 RPG(好吧,目前是自上而下在游戏中四处走动),我想创建一个读取“保存”文件并将其存储在内存中的方法(稍后会进行保存。)我希望这个保存文件通过有一种方法使其某些行不被该方法读取,从而使用户友好,以便我可以对修改它等进行说明。目前,计划是让它不读取前面带有 % 的行,但如果 % 导致问题,这可能会改变。

我希望在一个压缩块中保存格式本身——一个或两个字母数字字符表示单个“图块”的内容。我不想简单地为每个屏幕区域设置 169 行,我宁愿将它们放在 13*13 的压缩块中(再次,为了用户友好。)

本质上,我怎么能a)检测一行是否以 % b)如果是,跳到下一行 c)如果不是,一次读取两个字符复制到字符串数组 d)跳过空白行

我了解 BASIC IO,但我无法找到一种按字符和按行阅读的方法。

4

3 回答 3

3

Personally, I would use a BufferedReader to read the file line by line into individual String objects, and inspect the contents. You can check if a line starts with a comment character by using the cunningly named String.startsWith("%") method, and get at individual characters in the line using String.charAt(index), or double characters using String.substring(start, start+2).

于 2013-02-14T13:48:47.537 回答
1

看看扫描仪类http://docs.oracle.com/javase/tutorial/essential/io/scanning.html它应该能够完成大部分工作。

于 2013-02-14T13:43:17.910 回答
0

我会用扫描仪逐行阅读,解析前几个字符,如果需要,继续。例子:

Scanner lineReader = new Scanner(new FileReader(filename));
Scanner parser;
while (scanner.hasNextLine()){
  parser = new Scanner(scanner.nextLine());
  if(parser.hasNext())){ //checks for blank line
    String firstWord = parser.next();
    if(/*Check for %*/)
      continue;
    else
      //parse as you will
  }
}
于 2013-02-14T13:47:59.560 回答