Java 保存ArrayList<;字符串>;到文本文件
longlat文件:Java 保存ArrayList<;字符串>;到文本文件,java,android,text-files,Java,Android,Text Files,longlat文件: 101.2425101.2334103.345 ArrayList<String> getDifferenceList(String filePath) { File f = new File("longlat.txt"); String line, x1 = null, x2= null, x3 = null; BufferedReader buffreader = null; try { buffreader = new B
101.2425101.2334103.345
ArrayList<String> getDifferenceList(String filePath) {
File f = new File("longlat.txt");
String line, x1 = null, x2= null, x3 = null;
BufferedReader buffreader = null;
try {
buffreader = new BufferedReader(new FileReader(f));
while (( line = buffreader.readLine()) != null) {
String[] parts = line.split("");
x1 = (parts[0]);
x2 = (parts[1]);
x3 = (parts[2]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<String> ret = new ArrayList<String>();
FileWriter writer;
if (x1 == null || x1.isEmpty()
|| x2 == null || x2.isEmpty()
|| x3 == null || x3.isEmpty()) {
ret.add(x1);
ret.add(x2);
ret.add(x3);
return ret;
}
int index = 0;
while (index < x1.length()
&& index < x2.length()
&& index < x3.length()) {
if (x1.charAt(index) != x2.charAt(index)
|| x1.charAt(index) != x3.charAt(index)) {
break;
}
index++;
}
ret.add(x1.substring(index, x1.length()));
ret.add(x2.substring(index, x2.length()));
ret.add(x3.substring(index, x3.length()));
return ret;
}
FileWriter writer = new FileWriter("lalala.txt");
for(String str: ret) {
writer.write(str);
} writer.close();
编码有如下算法:
101.2425101.2334103.345
ArrayList<String> getDifferenceList(String filePath) {
File f = new File("longlat.txt");
String line, x1 = null, x2= null, x3 = null;
BufferedReader buffreader = null;
try {
buffreader = new BufferedReader(new FileReader(f));
while (( line = buffreader.readLine()) != null) {
String[] parts = line.split("");
x1 = (parts[0]);
x2 = (parts[1]);
x3 = (parts[2]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<String> ret = new ArrayList<String>();
FileWriter writer;
if (x1 == null || x1.isEmpty()
|| x2 == null || x2.isEmpty()
|| x3 == null || x3.isEmpty()) {
ret.add(x1);
ret.add(x2);
ret.add(x3);
return ret;
}
int index = 0;
while (index < x1.length()
&& index < x2.length()
&& index < x3.length()) {
if (x1.charAt(index) != x2.charAt(index)
|| x1.charAt(index) != x3.charAt(index)) {
break;
}
index++;
}
ret.add(x1.substring(index, x1.length()));
ret.add(x2.substring(index, x2.length()));
ret.add(x3.substring(index, x3.length()));
return ret;
}
FileWriter writer = new FileWriter("lalala.txt");
for(String str: ret) {
writer.write(str);
} writer.close();
我把上面的编码放在下面的顶部:
ret.add(x1.substring(index, x1.length()));
ret.add(x1.substring(index, x1.length()));
问题:单击“显示拉拉文本”按钮时,未显示任何内容
并且也尝试了:
try {
OutputStreamWriter out = new OutputStreamWriter(openFileOutput ("lalala.txt",MODE_APPEND));
String text =(ret);
out.write(text);
out.write('\n');
out.close();
}
catch (java.io.IOException e) {
Toast.makeText(this,"Sorry Text could't be added",Toast.LENGTH_LONG).show
();}
}
我把上面的编码放在下面的顶部:
ret.add(x1.substring(index, x1.length()));
ret.add(x1.substring(index, x1.length()));
问题:ret错误。它说“类型不匹配:无法从ArrayList转换为字符串”
我不知道如何获取arraylist并将其存储到文本文件中。
请给我一些想法,谢谢。ArrayList
无法转换为String
您可以通过以下方式将ArrayList
的内容写入文件:
PrintWriter out = null;
try {
out = new PrintWriter(new FileWriter("lalala.txt"));
for (String text : ret) {
out.writeln(text);
}
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
} finally {
if (out != null) {
out.close();
}
}
在写入数组列表ret之前,您正在写入文件
I put the above coding at the top of :
ret.add(x1.substring(index, x1.length()));
您的ret在此行之前为空。如果条件的计算结果为true,那么它实际上会从那里返回。
如果条件的计算结果为false。那么您就有了空的数组列表
因此,在您完全填写arrayList之后,就可以写入文件了
i、 在返回语句之前
return ret;
我需要把这个编码放在哪里?我已经试过了,但是当我点击一个按钮查看lalala.txt时,它没有显示任何内容。我的方法调用“longlat.txt”正确吗@kockoNot完全正确,放得足够正确。它不是writeln,而是println。请显示文件longlat的内容。txt@veritas我已经更新了,谢谢你的时间