0

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 に変換できません」と表示されました

配列リストを取得してテキスト ファイルに保存する方法がわかりません。アイデアをください、ありがとう。

4

2 に答える 2

0

配列 List ret に書き込む前にファイルを書き込んでいます

    I put the above coding at the top of :
ret.add(x1.substring(index, x1.length()));

この行の前の ret は空です。あなたのif条件はtrueと評価され、実際にはそこから戻ります。if-condition は false と評価されます。次に、空の配列リストがあります。

したがって、arrayList を完全に埋めた後、ファイルに書き込みます。

つまり、return ステートメントの直前。

  return ret;
于 2013-07-15T08:52:28.983 に答える