ファイルに次の行が含まれているとします。
#Do
#not
#use
#these
#lines.
Use
these.
私の目的は、で始まらない行だけを読み取ることです#
。これをJavaで最適に行うにはどうすればよいですか?
行を累積したいとしましょう (もちろん、行ごとにすべてを行うことができます)。
String filePath = "somePath\\lines.txt";
// Lines accumulator.
ArrayList<String> filteredLines = new ArrayList<String>();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(filePath));
String line;
while ((line = bufferedReader.readLine()) != null) {
// Line filtering. Please note that empty lines
// will match this criteria!
if (!line.startsWith("#")) {
filteredLines.add(line);
}
}
}
finally {
if (bufferedReader != null)
bufferedReader.close();
}
Java 7の try-with-resourcesステートメントの使用:
String filePath = "somePath\\lines.txt";
ArrayList<String> filteredLines = new ArrayList<String>();
try (Reader reader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(reader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
if (!line.startsWith("#"))
filteredLines.add(line);
}
}
メソッドを使用しString.startsWith()
ます。あなたの場合、あなたは使用します
if(!myString.startsWith("#"))
{
//some code here
}
BufferedReader.readLine() は文字列を返します。#
その行がstring.startsWith()を使用して始まるかどうかを確認できます
FileReader reader = new FileReader("file1.txt");
BufferedReader br = new BufferedReader(reader);
String line="";
while((line=br.readLine())!=null){
if(!line.startsWith("#")){
System.out.println(line);
}
}
}