1

テキストファイルを読み取り、空白行が検出されるたびに新しいファイルを書き出す単純な Java プログラムを作成したいと考えています。ファイルを読み込む例を見たことがありますが、空白行を検出して複数のテキスト ファイルを出力する方法がわかりません。

ファイルイン.txt:

line1
line2

line3

fileOut1.txt:

line1
line2

fileOut2.txt:

line3
4

5 に答える 5

1

空の文字列を検出して、行が空白かどうかを調べることができます。例えば:

if(str!=null && str.trim().length()==0)

または、実行できます (JDK 1.6 以降を使用している場合)

if(str!=null && str.isEmpty())
于 2012-05-10T22:33:21.280 に答える
1

空白行を検出する方法がわかりません..

if (line.trim().length==0) { // perform 'new File' behavior

.. 複数のテキスト ファイルを出力します。

ループ内で、単一のファイルに対して行われることを行います。

于 2012-05-10T22:34:54.077 に答える
0

このようなことをする必要があります:

public static void main(String[] args) throws Exception {
        writeToMultipleFiles("src/main/resources/fileIn.txt", "src/main/resources/fileOut.txt");
    }

    private static void writeToMultipleFiles(String fileIn, String fileOut) throws Exception {      

        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(fileIn))));
        String line;
        int counter = 0;
        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(fileOut))));

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

            if(line.trim().length()!=0){
                wr.write(line);
                wr.write("\n");
            }else{
                wr.close();
                wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileOut + counter)));
                wr.write(line);
                wr.write("\n");
            }
            counter++;
        }

        wr.close();
    }
于 2012-05-10T22:52:35.263 に答える
0
BufferedReader br = new BufferedReader(new FileReader("test.txt"));
String line;
int empty = 0;
while ((line = br.readLine()) != null) {
if (line.trim().isEmpty()) {
 // Line is empty
 }
}

上記のコード スニペットを使用して行が空かどうかを検出し、その時点でFileWriterを作成して新しいファイルに書き込むことができます。

于 2012-05-10T22:37:36.990 に答える