Java 在android中拆分文本文件
我正在开发一个android应用程序,我需要它来读取文本文件。一旦它读取了文本文件,我需要Java 在android中拆分文本文件,java,android,Java,Android,我正在开发一个android应用程序,我需要它来读取文本文件。一旦它读取了文本文件,我需要将某些部分保存到数据库中。 文本文件包含以下内容: Title - Hello Date - 03/02/1982 Info - Information blablabla Title - New title Date - 04/05/1993 Info - New Info 我想我需要用空白行作为一个分隔符< /代码>将文本文件分割成两个。然后我需要获得个人信息,比如标题,并将其作为标题保存到数据库中
将某些部分保存到数据库中。
文本文件包含以下内容:
Title - Hello
Date - 03/02/1982
Info - Information blablabla
Title - New title
Date - 04/05/1993
Info - New Info
我想我需要用空白行作为一个<代码>分隔符< /代码>将文本文件分割成两个。然后我需要获得个人信息,比如标题,并将其作为标题保存到数据库中。有没有办法做到这一点?我知道如何读取所有文本文件。我用它来读取
完整的
文本文件
TextView helloTxt = (TextView) findViewById(R.id.hellotxt);
helloTxt.setText(readTxt());
}
private String readTxt() {
InputStream inputStream = getResources().openRawResource(R.raw.hello);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1) {
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return byteArrayOutputStream.toString();
}
我只是想知道这个分裂事件。
谢谢你如果我没弄错你的问题,你可以在换行时寻找一些可以分割文本的东西。因此,您可以获取这两个信息字段并将它们放入文本视图中
请看这篇文章:
这将向您展示如何将文本拆分成行
如果要拆分没有空行的文本,请使用:
String.split("[\\r\\n]+")
这也是由同一线程中的其他用户描述的
祝你好运,
Daniel您可以将正则表达式与Pattern和Matcher一起使用:
String inputString = "Title - Hello\n" //
+ "Date - 03/02/1982\n" //
+ "Info - Information blablabla\n" //
+ "Title - New title\n" //
+ "Date - 04/05/1993\n" //
+ "Info - New Info\n";
Pattern myPattern = Pattern.compile("Title - (.*)\nDate - (.*)\nInfo - (.*)");
Matcher m = myPattern.matcher(inputString);
String title = "";
String date = "";
String info = "";
while (m.find()) {
title = m.group(1);
date = m.group(2);
info = m.group(3);
System.out.println("Title : [" + title + "] Date : [" + date + "] Info : [" + info + "]");
}
此代码返回:
Title : [Hello] Date : [03/02/1982] Info : [Information blablabla]
Title : [New title] Date : [04/05/1993] Info : [New Info]
我相信你能找到更好的正则表达式,但我不是专家;) 尝试使用模式。编译:
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard,"myaddress.txt");
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append("####");
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
System.out.println("text text text ====:: "+text.toString());
String your_string = text.toString();
Pattern pattern = Pattern.compile("####");
String[] strarray =pattern.split(your_string);
注意:
这是我的工作,我已经测试过了。如果你有更好的解决方案,比如将数据存储在JSON或XML文件中,这是我最好的方式,就像评论中的其他建议一样这是我和朋友一起工作的项目,我们使用的是txt文件,但你明白user1810737试图告诉你什么吗?您可以通过使用xml文件创建更多的结构,并且有足够的库可用于读取这些xml文件和分配变量,如:标题、日期和信息。您好,是的,我理解他们所说的,我感谢你们的帮助。我需要从一个txt文件中读取它。所以基本上,你希望有人告诉你如何做一些有更好的方法可以做的事情,而你自己甚至没有尝试过这样做。那是。。。真的不是这样的问题。最好使用regex imho,如果出现问题,这种模式可能会很危险。我已经一个月没找了!非常感谢你!