0

改行で区切られた一度に 1 つの段落を持つファイルを読み込んでいます。

Line 1
Line 2
Line 3

Line 4
Line 5
Line 6

ここでは、1 行目、2 行目、3 行目を読み、次に 4 行目、5 行目、6 行目を読みます。

while (there are still more paragraphs) {
  String paragraph = new Scanner(new File("testdata.txt")).useDelimiter("\n\n").next();
}

区切り文字「\n\n」は、行ではなく段落を識別するためのものです。現在、区切り文字は、いくつかのシステムでは "\r\n\r\n" に、他のいくつかのシステムでは "\n\n" に変更できます。runtine でそれを識別して使用する方法はありますか? 私は次のようなものを探しています:

String delimiter = getNewLineCharYourself();
String paragraph = new Scanner(new File("testdata.txt")).useDelimiter(delimiter).next();
4

4 に答える 4

2

これをチェックしてください:

String newLine = String.format("%n"); 
//       %n becomes newline     ^^

または:

System.getProperty("line.separator");

または、Java 7 では:

System.lineSeparator();

ここから:プラットフォームに依存する改行文字を取得するにはどうすればよいですか?

于 2013-07-23T14:40:38.933 に答える
0

ジョロードの言うこと。または次を使用しますBufferedReader

File file = new File("myFile.txt");
if (file.exists() && file.canRead()) {
    BufferedReader br = null;
    try {
        br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        String line = null;
        while ((line = br.readLine())!= null) {
            if (!line.trim().isEmpty()) {
                // TODO something with your line
            }
        }
    } 
    catch (Throwable t) {
        // TODO handle this
        t.printStackTrace();
    }
    finally {
        // attempting to close
        if (br != null) {
            try {
                br.close();
            }
            catch (Throwable t) {
                t.printStackTrace();
            }
        }
    }
}
于 2013-07-23T14:44:16.860 に答える
0

ファイル全体をそのまま取得して、データを分割できます。

for ( String line : "the entire file".split( System.getProperty("line.separator") )
{
     System.out.println( line );
}

ユニバーサル改行文字です。

別の方法:

BufferedReader bufferedReader = new BufferedReader( new FileReader( "absolute file path" ) );

String line;

while ( ( line = bufferedReader.readLine() ) != null)
{
     System.out.println( line );
}
于 2013-07-23T14:41:45.597 に答える