编辑:我想这个帖子可以关闭,因为我的所有问题都已经得到解答了!感谢所有帮助过我的人!
编辑:我偶然发现了openFileInput("myfilename.txt");
的错误。这是错误:The method openFileInput(String) is undefined for the type Game
。我在这里读到了一个答案:Android File I/O openFileInput() undefined,但必须承认我不太明白......
我正在尝试读取部分文本文件,直到令牌“;”。这是我写的代码:
InputStream instream = openFileInput("myfilename.txt");
String line=null;
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
while((line=buffreader.readLine())!=null){
String[] parts=line.split(";");
int intOne = Integer.parseInt(parts([0]);
int intTwo = Integer.parseInt(parts([1]);
String strLine = parts([3]);
}
public static void Start(){
while(there is text in the file){
// read first line till ';';
// name that variable intOne;
// read first line after ';' till next ';';
// name that variable intTwo;
// read next line, declare as strLine;
// System.out.println(strLine);
}
}
在它下面是它应该做什么的想法。但我有一些问题:
我是否可以说String[] parts
是一个数组?
我想要一个更大的文件,但每个循环只读3行。或者,当我有一个100行的文件时,我可以一次读取所有文件,然后从parts[]
回忆它们吗?或者这会占用太多时间?
文本文件应该在哪里?当我在Eclipse中测试时,在项目文件夹中?当我把它导出到罐子里面时?
希望有人能回答我的问题!
(我的来源是:Read specific string from each line of text file using BufferedReader in java,Gilbert Le Blanc的全部学分!)
编辑:当我在文件中执行此操作时:
Hello,
I am coding;
pars[0]
会Hello,
,因为那是一行,还是Hello, I am coding
?它会接受它吗?
另一个编辑: 我希望创建一些基于文本的RPG引擎,您只需要编辑文本文件,即可更改故事。例如(在文本文件中):
30;60; //Score needed for this piece of the story
Hello!; // The text
Hi!;5; // The first possible answer; the score you'll get when you answer this
Shut up!;-5; // The second possible answer; the score you'll get when you answer this
答案 0 :(得分:0)
你真正想要的是一个接一个地读一个字符。我在Smooks框架中使用了一些不错的BufferedSegmentReader,这对你来说很有意思。看一下这里的源代码:
它从流中逐个读取字符并将其放入StringBuffer中。有一些分隔符表示一个“段”何时完成读取,之后你可以使用这个段直到你告诉BufferedSegmentReader继续前进。
我认为这适合您的情况,是您正在寻找的方法。