2012-02-06 11 views
0

テキストファイルから文字列を削除します。私はこれを行うために一時ファイルが必要であることを知りました。私はlist.txtファイルから読み込み、その中の文字列を削除したいと思います。私が検索したいファイルは既に作成されています。私はこれに関する他の投稿を見て、それを自分の個人プロジェクトに変更しようとしています。現在、私は持っている:私はこのようなランダムな文字列をLIST.TXTいるテキストファイルから文字列を削除するAndroid - ファイルIO

 package com.nullwall.listmanager; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 

import android.app.Activity; 
import android.os.Bundle; 
import android.os.Environment; 

public class IPR3Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     DoWork("TestString"); 
    } 


public void DoWork(String deleteFromFile) 
{ 
    try{ 
    String delete = deleteFromFile; 
    String line; 

    //locates a new file named list.txt 
    File root = new File(Environment.getExternalStorageDirectory(),"projects"); 
    File file = new File(root, "list.txt"); 

    //creates buffers 
    BufferedReader bufferedReader = new BufferedReader(new FileReader(file.getAbsolutePath())); 
    StringBuffer stringBuffer = new StringBuffer(); 

    //Loads list.txt into bufferedReader, deletes line and moves on 
    while ((line = bufferedReader.readLine()) != null) 
    { 
     if (line.equals(deleteFromFile)) 
     { 
     line.replace(deleteFromFile, ""); 
     stringBuffer.append("\n");  
     } 
     else 
     { 
     stringBuffer.append(line); 
     stringBuffer.append("\n"); 
     } 
    } 
    //Entire file has now been loaded into memory 

    //creates new Filewriter, append to false, rewrites list.txt with stringBuffer minus string 
    FileWriter writer = new FileWriter(file, false); 
    writer.write(stringBuffer.toString()); 
    System.out.println("file written"); 

    //closes writer 
    writer.flush(); 
    writer.close(); 


    } 
    catch (FileNotFoundException ex) { 
     ex.printStackTrace(); 
     } 
     catch (IOException ex) { 
     ex.printStackTrace(); 
     } 

} 


} 

:実行した後

notstring 
notstring 
notstring 
teststring 
notstring 
notstring 

、何も起こりません。私はこのようなファイルIOをするのはかなり新しいですので、私が見逃したかもしれない簡単なことを見落とさないようにしてください。ありがとうございました!

答えて

0

ファイルをStringバッファに格納して置き換えて、置き換えたいファイルを置き換えてから、ファイルの内容を完全に置き換えてください。また、別のことは、ファイルIOは必ずしもアンドロイドで同じではありません。アンドロイドはコンテキストを使用するため、ファイルIOへのアプローチは異なります。アンドロイドからファイルIOの詳細については、devサイトをチェックしてください。

+0

あなたの提案と私の投稿を編集...まだ何も編集されていません。コードを正しく書いていますか?私は思考プロセスでコメントを追加しました。 – PeterL

関連する問題