我正在为我的关卡设计使用txt文件。我使用下面的内容并转换为字符串缓冲区,然后遍历这些行来生成我的游戏对象。
问题在于它从上到下读取,所以我必须将我的水平颠倒设计才能使它们正确。
如何更改流以相反的方式阅读?或者以相反的方式将行写入String Builder?
private static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append((line + "\n"));
}
} catch (IOException e) {
Log.w("LOG", e.getMessage());
} finally {
try {
is.close();
} catch (IOException e) {
Log.w("LOG", e.getMessage());
}
}
return sb.toString();
答案 0 :(得分:6)
您可以使用sb.insert(0, line + "\n")
代替sb.append(line + "\n");
。
这将始终在字符串的前面添加新行,而不是将其附加到结尾。应该完全按照自己的意愿行事,并且速度也一样快,因为StringBuilder完全适合这样的事情。
答案 1 :(得分:0)
您必须做的唯一选择是使用seek()
功能......
我相信这是一个解决方案,但你使用的那个会更容易......
以下是如何使用搜索的示例:
http://mark.koli.ch/2010/01/java-jumptoline-jump-to-a-line-in-a-file.html