以下のコードは値を検索することができますが、今は検索されている値を置き換える必要があります。私はjavaを初めて利用しています。これはテキストエディタ検索と置換の機能を備えています。私が検索している単語を置き換える方法
public class TestClass {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
System.out.println("Enter Path to be searched");
String directory = scanner.next();
System.out.println("Enter String to be searched");
String searchString = scanner.next();
searchDirectory(directory, searchString);
}
static void searchDirectory(String directory, String searchString){
File dir = new File(directory);
if(!dir.isDirectory()){
System.err.println("PATH ENTERED is not directory");
return;
}
try{
for (File file : dir.listFiles()) {
if(!file.isDirectory()){
String fileName = file.getName().toLowerCase();
if (fileName.endsWith((".txt"))
||fileName.endsWith((".log"))) {
@SuppressWarnings("resource")
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
int Count =0,
index = -1;
while ((line = br.readLine()) != null) {
Count++;
index = line.indexOf(searchString);
if(index != -1){
System.out.println("Text '"+searchString+"' Found at position "+index +" in file "+ fileName +" at Line No "+Count);
}
}
}
}else{
System.err.println("TestClass.searchDirectory(DIR)"+file.getAbsolutePath());
// searchDirectory(file.getAbsolutePath(), searchString);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
を? 'searchDirectory(directory、someOtherString);'を呼び出すことはできません。 – Idos
検索と置換操作を意味すると思いますか?その場合は、読み込みが完了するまでファイルの内容をメモリに保存しておき、検索文字列を置き換えて(格納中にその可能性があります)、最後にファイルの内容を上書きしなければなりません。ファイルが大きい場合は、一時ファイルを使用して書き込んだ後、元のファイルを一時ファイルに置き換えることができます(または一時ファイルを読み込んで、元のファイルに内容を書き込んでパーミッション、作成タイムスタンプなどを保存します)。 – Thomas
「セキュリティ」という単語を検索する場合は、ディレクトリiamで検索できるようになりました。これで検索値を他の名前に置き換えます。 –