テキストファイルandroidから奇妙な行を削除します

Creesch 2.0

を読み込もうとしtextfileていて、フィルタリングを実行したいと思っています。そのために、を使用しBufferedReaderてファイルを読み取り、すべての行を読み取るためのString呼び出し"line"作成しましたline特定のstring(私の場合は「#」)で始まりlineその後(次の行)が別の特定のString(私の場合は「h」)で始まっていないかどうかを確認したいと思います。また、「次の行」が「h」で始まる場合は、その行を削除する必要があります。

だから基本的にはすべての線を均等にしたいです。

例:

これはテキストファイルです:

#line
ham
#line2
house
#line3
#line4
heart
#line5
hand

(この例では、line4を削除する必要があります)

私はこのようなことを試みました:

if (line.startsWith("#") && nextline != "h"){
                        // remove this line
                        // There is no definition for "nextline"
                    }

行を読むため:

try {
                BufferedReader br = new BufferedReader(new FileReader(filePath));
                String line;

                position2string = String.valueOf(wrongpos + 1 + ".");

                while ((line = br.readLine()) != null) {
                    if (line.startsWith("h")) {
                        lineStore.add(line);

                    }



                    if (line.startsWith("#")) {
                        line2 = line.replace("#EXTINF:-1,", "");
                        line3 = +richtigeposition + 1 + ". " + line2;
                        richtigeposition++;
                        namelist.add(line3);


                        arrayAdapter = new ArrayAdapter<String>(
                                this,
                                R.layout.listitem, R.id.firsttext,
                                namelist);

                        mainlist.setAdapter(arrayAdapter);
                        arrayAdapter.notifyDataSetChanged();


                    }

                }
                br.close();
            } catch (Exception e) {
                Log.e("MainAcvtivity", + e.toString());
            }

編集(Tim Biegeleisenのおかげで、解決策を見つけましたが、NullPointerExceptionが発生します:仮想メソッド 'int java.lang.String.length()を呼び出そうとするとbw.write(last);この例外が発生します。申し訳ありませんが、プログラミングはまったく初めてです):

私の現在のコード:

        try {
            BufferedReader br = new BufferedReader(new FileReader(filePath));
            BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));


            String line;

            position2string = String.valueOf(wrongpos + 1 + ".");

            while ((line = br.readLine()) != null) {


                if (last != null && (!line.startsWith("h") || !lastPound)) {
                    bw.write(last);
                }
                lastPound = line.startsWith("#");
                last = curr;




                if (line.startsWith("h")) {
                    lineStore.add(line);

                }



                if (line.startsWith("#")) {
                    line2 = line.replace("#EXTINF:-1,", "");
                    line3 = +richtigeposition + 1 + ". " + line2;
                    richtigeposition++;
                    namelist.add(line3);


                    arrayAdapter = new ArrayAdapter<String>(
                            this,
                            R.layout.listitem, R.id.firsttext,
                            namelist);

                    mainlist.setAdapter(arrayAdapter);
                    arrayAdapter.notifyDataSetChanged();


                }

            }
            br.close();
      //Exeption is here ==>    bw.write(last);
            bw.close();







        } catch (IOException e) {
            e.printStackTrace();
        }
ブラインドカイ

あなたはおそらくあなたの時間といくつかのコード行を節約する別の方法でそれを行うことができます。すべてのファイル行をリストに入れると、それを操作するのがはるかに簡単になります。

List<String> lines = Files.readAllLines(Paths.get(*path_to_file*), Charset.defaultCharset());

ファイル行をリストに保存した後、それを繰り返して必要な行を検索できるようになります。正しい境界を指定することを避けるNullPointerExceptionIndexOutOfBoundsException、忘れないでください。

for (int i = 0; i < lines.size() - 1; i++) {
    if (lines.get(i).startsWith("#") && !lines.get(i + 1).startsWith("h")) {
        lines.remove(i+1);
    }
}

その後、リストをファイルに保存できます。

Files.write(Paths.get(*path_to_file*), lines);

私はそれをテストし、出力は次のようになりました。

ここに画像の説明を入力してください

---更新---

IO操作を実行するにはScannerFileWriter次を使用できます

List<String> lines = new ArrayList<>();

Scanner s = new Scanner(new File("in.txt"));

while (s.hasNext()) {
    lines.add(s.next());
}

s.close();

そして出力のために:

FileWriter writer = new FileWriter("out.txt");

for (String str : lines) {
    writer.write(str + System.lineSeparator());
}

writer.close();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキストファイルから空の行を削除します

分類Dev

テキストファイルから行を削除します-python

分類Dev

テキストファイルvbaから最後の行を削除します

分類Dev

テキストファイルから改行を削除します

分類Dev

テキストファイルからランダムな行を取得し、PHPでテキストファイルからその行を削除する方法

分類Dev

大きなテキストファイルから数行を抽出します

分類Dev

テキストが見つかったら、ファイルから複数の行を削除します

分類Dev

sedを使用してテキストファイルから特定の行番号を削除しますか?

分類Dev

フォーマットを維持しながら、テキストファイルからすべての空の行を削除します

分類Dev

テキストファイルから繰り返し行を削除する

分類Dev

Notepad ++のテキストファイルから新しい行を削除する

分類Dev

sedを使用してWindowsのテキストファイルから最初の行を削除します

分類Dev

テキストファイルがで始まる場合は、テキストファイルから行を削除します

分類Dev

テキストファイルの偶数行を削除します

分類Dev

テキストファイルpythonから最大数の行をどのように削除しますか?

分類Dev

テキストファイルの複数の正規表現に一致する行をテキストファイルから削除します

分類Dev

リポジトリから奇妙な「Iconr」ファイルを削除します

分類Dev

大きなテキスト ファイルから重複した行を効率的に削除する方法は?

分類Dev

1番目とn番目ごとを除くテキストファイルから行を削除します

分類Dev

テキストファイルのさまざまな場所から値を削除します

分類Dev

テキストファイルから行をスライスします

分類Dev

並べ替えなしでテキストファイルからすべての重複を削除します

分類Dev

テキストファイルから文字列を削除します

分類Dev

ファイルからテキストのブロックを削除します

分類Dev

テキストファイルの本文からHTMLを削除します

分類Dev

テキストファイルから最初の列を削除します

分類Dev

テキストファイルから変数の末尾を削除します

分類Dev

Pythonはテキストファイルから句読点を削除します

分類Dev

テキストファイルからBeautifulSoupタグを削除します

Related 関連記事

  1. 1

    テキストファイルから空の行を削除します

  2. 2

    テキストファイルから行を削除します-python

  3. 3

    テキストファイルvbaから最後の行を削除します

  4. 4

    テキストファイルから改行を削除します

  5. 5

    テキストファイルからランダムな行を取得し、PHPでテキストファイルからその行を削除する方法

  6. 6

    大きなテキストファイルから数行を抽出します

  7. 7

    テキストが見つかったら、ファイルから複数の行を削除します

  8. 8

    sedを使用してテキストファイルから特定の行番号を削除しますか?

  9. 9

    フォーマットを維持しながら、テキストファイルからすべての空の行を削除します

  10. 10

    テキストファイルから繰り返し行を削除する

  11. 11

    Notepad ++のテキストファイルから新しい行を削除する

  12. 12

    sedを使用してWindowsのテキストファイルから最初の行を削除します

  13. 13

    テキストファイルがで始まる場合は、テキストファイルから行を削除します

  14. 14

    テキストファイルの偶数行を削除します

  15. 15

    テキストファイルpythonから最大数の行をどのように削除しますか?

  16. 16

    テキストファイルの複数の正規表現に一致する行をテキストファイルから削除します

  17. 17

    リポジトリから奇妙な「Iconr」ファイルを削除します

  18. 18

    大きなテキスト ファイルから重複した行を効率的に削除する方法は?

  19. 19

    1番目とn番目ごとを除くテキストファイルから行を削除します

  20. 20

    テキストファイルのさまざまな場所から値を削除します

  21. 21

    テキストファイルから行をスライスします

  22. 22

    並べ替えなしでテキストファイルからすべての重複を削除します

  23. 23

    テキストファイルから文字列を削除します

  24. 24

    ファイルからテキストのブロックを削除します

  25. 25

    テキストファイルの本文からHTMLを削除します

  26. 26

    テキストファイルから最初の列を削除します

  27. 27

    テキストファイルから変数の末尾を削除します

  28. 28

    Pythonはテキストファイルから句読点を削除します

  29. 29

    テキストファイルからBeautifulSoupタグを削除します

ホットタグ

アーカイブ