output 폴더를 만들고 _del.txt 파일로 다시 저장한다.
윈도우와 리눅스의 줄바꿈의 차이로 에러가 발생할 수 있다.
리눅스에서 사용하려면 newLine() 함수가 아닌 \n을 사용하면 된다.
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileReadAndSave {
public static void main(String[] args) {
String path = "D:\\aviBatch\\logs2";
File dirFile = new File(path);
File[] fileList = dirFile.listFiles();
FileReader fileReader = null;
BufferedReader bufReader = null;
File newFile = null;
BufferedWriter bufferedWriter = null;
for (File tempFile : fileList) {
if (tempFile.isFile()) {
String tempPath = tempFile.getParent();
String tempFileName = tempFile.getName();
try {
fileReader = new FileReader(tempFile);
bufReader = new BufferedReader(fileReader);
String line="";
String newFileDirPath = path + File.separator + "output";
File dir = new File(newFileDirPath);
if(!dir.exists()){
dir.mkdirs();
}
newFile = new File(newFileDirPath+File.separator + tempFileName + "_del.txt");
bufferedWriter = new BufferedWriter(new FileWriter(newFile));
bufferedWriter.write( "#!/bin/sh" );
bufferedWriter.write("\n");
System.out.println("fileName="+newFile.getName());
while((line = bufReader.readLine()) != null ){
if(line.indexOf("cmdStr:rm") > -1){
bufferedWriter.write("\n");
bufferedWriter.write( line.substring( line.indexOf("rm")) );
}
else{
}
}
bufReader.close();
fileReader.close();
bufferedWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}