0

このコードを使用して、乱数と文字を含むテキスト ファイルからすべての文字を削除しようとしています

package textEdit;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class RemoveLetters {



    public static void readFile(String file) {
        try {
            FileReader fis = new FileReader(file);
            BufferedReader reader = new BufferedReader(fis);
            FileWriter writer = new FileWriter(file);
            BufferedWriter bwriter = new BufferedWriter(writer);
            String line = null;

            while ((line = reader.readLine()) != null) {
                for (int i = 0; i < symbolsAndLetters.length; i++) {
                    String str = symbolsAndLetters[i];
                    str = str.replace(str, ""); 
                }
            }
            reader.close();
            bwriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }   

    public static String[] symbolsAndLetters = {"A", "B", "C",
        "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
        "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y",
        "Z", "=","a", "b", "c", "d", "e", "f", "g", "h", "i", 
        "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
        "u", "v", "w", "x", "y", "z",};

    /**
     * @param args
     */

    public static void main(String[] args) {
        readFile("c:/users/Kyle/workspace/Learn more java/src/music.txt");
    }

}

問題は、ファイルからすべてが削除されることです。私はJavaで読み書きするのが初めてなので、誰かが私が間違っていることを理解するのを手伝ってくれますか?

4

3 に答える 3

1

出力を書き込む新しいファイルを作成します。ここでは、「new」という単語を追加します。
-- FileWriter writer = new FileWriter(file + "new");

次に、正規表現を使用して必要な文字を置き換えます
-- line=line.replaceAll("[a-zA-Z]", "");

次に、それを新しいファイルに追加します。
-- bwriter.append(line +"\n");

于 2013-10-02T21:39:27.703 に答える
0

ループの内側で、whileループの後、for行をファイルに書き戻す必要があります。

ループが次の行に進むと、 のすべてが失われstrます。

すでにファイル出力ストリームを開いていますが、何も書き込んでいません。すべてを上書きせず、何も書き込みません。

于 2013-10-02T21:03:31.947 に答える