[英]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.