簡體   English   中英

如何在Java中寫入新的文本文件

[英]how to write to new text file in java

我正在嘗試將每行寫入test.txt文件。 但是,每個結果都必須放在自己的行中。 我是否缺少某些內容或沒有明確實現“ \\ n”? 為了更好地理解,我的代碼讀取了一行的第三篇文章,並且如果該單詞與P *** ei“ *”相匹配,則表示a(AZ)或S ** ei中的任何字母,並因此返回該行中的第一個單詞。 該代碼有效,但是現在當我寫入文件時,它不會在自己的行中打印每個單詞。

package test;

 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
  import java.io.FileWriter;
  import java.io.IOException;
  import java.util.regex.Pattern;

public class moja {



    public static void main(String[] args) {
        try {
            File file = new File("SloveneLexicon.txt");
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            StringBuffer stringBuffer = new StringBuffer();
            String vrstica;
            File test = new File("test.txt");
            FileWriter fw = new FileWriter(test);
            while ((vrstica = bufferedReader.readLine()) != null) {

                String s = vrstica;
                String[] dobi_besedo_v_vrstici = s.split("\\s+");
                String prva_beseda = dobi_besedo_v_vrstici[0];
                String tretja_beseda = dobi_besedo_v_vrstici[2];

                Pattern ena = Pattern.compile("S[a-zA-z]{2}ei");
                    if(ena.matcher(tretja_beseda).matches()){
                    fw.write(prva_beseda+'\n');}
                Pattern dva = Pattern.compile("P[a-zA-z]{3}ei");
                    if(dva.matcher(tretja_beseda).matches()){
                        fw.write(prva_beseda+'\n'); 
                    }
                }


            bufferedReader.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

獲取系統行分隔符,而不是使用'\\ n'

            String newLine = System.getProperty("line.separator");

            Pattern ena = Pattern.compile("S[a-zA-z]{2}ei");
                if(ena.matcher(tretja_beseda).matches()){
                fw.write(prva_beseda + newLine);}
            Pattern dva = Pattern.compile("P[a-zA-z]{3}ei");
                if(dva.matcher(tretja_beseda).matches()){
                    fw.write(prva_beseda + newLine); 
                }

在程序末尾添加fw.flush()。

這里查看從OutputStreamWriter繼承的flush方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM