Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 保存ArrayList<;字符串>;到文本文件_Java_Android_Text Files - Fatal编程技术网

Java 保存ArrayList<;字符串>;到文本文件

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

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 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我已经更新了,谢谢你的时间