从文本文件中读取char和line

时间:2013-02-14 13:39:54

标签: java file-io

对于一个非常基本的RPG(好吧,现在自上而下走动游戏),我想制作一个读取“保存”文件的方法并将其存储在内存中(稍后保存。)我想要这个保存文件是方便用户使用方法,使方法不能读取它的某些行,以便我可以将指令修改它等等。目前,计划是让它不读取前面带有%的行,但如果%导致问题则可能会改变。

我希望在一个压缩块中保存格式本身 - 一个或两个字母数字字符表示单个“图块”的内容。我不希望每个屏幕区域只有169行,我宁愿将它们放在13 * 13的压缩块中(同样,用户友好。)

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

我理解BASIC IO,但我无法找到一种按字符和直线阅读的方式。

3 个答案:

答案 0 :(得分:3)

就个人而言,我会使用BufferedReader逐行读取文件到单个String对象中,并检查内容。您可以使用狡猾命名的String.startsWith("%")方法检查行是否以注释字符开头,并使用String.charAt(index)获取行中的单个字符,或使用String.substring(start, start+2)获取双字符。

答案 1 :(得分:1)

查看扫描仪课程http://docs.oracle.com/javase/tutorial/essential/io/scanning.html,它应该可以完成大部分工作。

答案 2 :(得分: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
  }
}