对于一个非常基本的RPG(好吧,现在自上而下走动游戏),我想制作一个读取“保存”文件的方法并将其存储在内存中(稍后保存。)我想要这个保存文件是方便用户使用方法,使方法不能读取它的某些行,以便我可以将指令修改它等等。目前,计划是让它不读取前面带有%的行,但如果%导致问题则可能会改变。
我希望在一个压缩块中保存格式本身 - 一个或两个字母数字字符表示单个“图块”的内容。我不希望每个屏幕区域只有169行,我宁愿将它们放在13 * 13的压缩块中(同样,用户友好。)
基本上,我怎么能两个 a)检测一行是否以%开头 b)如果是,请跳到下一行 c)如果没有,一次读取两个字符复制到字符串数组 d)略过空白行
我理解BASIC IO,但我无法找到一种按字符和直线阅读的方式。
答案 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
}
}