将ArrayList <string>保存到文本文件</string>

时间:2013-07-15 08:14:39

标签: 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 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;


}

需要存储到文本文件中的值位于ret的arraylist中。

我试过了:

FileWriter writer = new FileWriter("lalala.txt");
     for(String str: ret) {
        writer.write(str);         
      } writer.close();

我把上面的代码放在了顶部:

ret.add(x1.substring(index, x1.length()));

问题:点击按钮“显示lalala文字”时没有显示。

并尝试了

 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'错误。它说“类型不匹配:无法从ArrayList转换为String”

我不知道怎么拿arraylist并将它们存储到文本文件中。 请给我一些想法,谢谢。

2 个答案:

答案 0 :(得分:1)

ArrayList<String>无法投放到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();
    }
}

答案 1 :(得分:0)

您在写入数组List ret

之前正在编写文件
    I put the above coding at the top of :
ret.add(x1.substring(index, x1.length()));

此行之前你的ret是空的。你的if-condition评估为true然后它实际从那里返回。 if-condition评估为false。那么你有空数组列表。

在完全填充arrayList之后,请写入文件。

即。就在返回声明之前。

  return ret;