現在、テキスト ファイルから行内のいくつかの文字列を置き換えています。ファイルの内容は次のとおりです。
public class MyC{
public void MyMethod() {
System.out.println("My method has been accessed");
System.out.println("hi");
}
}
私のコードは次のとおりです。プログラムは、配列で定義された特定の行から文字列を置き換えるだけです。元のインデントをそのままにしておく必要があります。
public class ReadFileandReplace {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
boolean l1;
int num[] = {1, 2, 3};
String[] values = new String[]{"AB", "BC", "CD"};
HashMap<Integer,String> lineValueMap = new HashMap();
for(int i=0 ;i<num.length ; i++) {
lineValueMap.put(num[i],values[i]);
}
FileInputStream fs = new FileInputStream("C:\\Users\\Antish\\Desktop\\Test_File.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fs));
FileWriter writer1 = new FileWriter("C:\\Users\\Antish\\Desktop\\Test_File1.txt");
int count = 1;
String line = br.readLine();
while (line != null) {
l1 = line.contains("\t");
System.out.println(l1);
String replaceValue = lineValueMap.get(count);
if(replaceValue != null) {
if(l1==true){
writer1.write("\t"+replaceValue);}
writer1.write(replaceValue);
} else {
writer1.write(line);
}
writer1.write(System.getProperty("line.separator"));
line = br.readLine();
count++;
}
writer1.flush();
}
}
私はこの出力を得る:
CDCD のインデントが失われ、元のテキスト ファイルの元の位置から開始する必要があります。
誰かがこれを修正する方法を教えてくれますか? コード内の 1 つのタブスペース チェックは正常に機能しますが、2 つ以上のタブスペースをチェックする方法。