0
잘 작동하는 텍스트 파일에서 일부 줄을 삭제하지만 빈 줄에 문제가 있습니다. .txt 파일에있는 사람들은 여전히 그 파일을 제거하거나 넣는 방법을 모르지만 Google과 여기에 대한 해결책을 찾았지만 실패했습니다. 어떻게 빈 줄을 제거 할 수 있을지 생각해보십시오. 나는 그것을 시도 :Java txt 파일의 빈 줄 삭제
public static String COMMENT_LINE = "--.*";
public static String CREATE_BUFFERPOOL = "CREATE BUFFERPOOL.*";
public static String GRANT_USE = "GRANT USE.*";
public static String CONNECT_TO = "CONNECT TO.*";
public static Logger log = Logger.getLogger(Main.class);
//CHANGE PATH
public static String INPUT_FILE_PATH = "C://Users//dpa//Desktop//BW//bwcsvtest.txt";
public static String OUTPUT_FILE_PATH "C://Users//dpa//Desktop//BW//BWFormated.txt";
public static String TRANSFORM_FILE_PATH = "C://Users//dpa//Desktop//BW//BWtransformed.txt";
public static String CSV_FILE_PATH = "C://Users//dpa//Desktop//BW//result.csv";
public static void main(String[] args) throws IOException {
//log.debug("Formating File");
formatTxt(INPUT_FILE_PATH,OUTPUT_FILE_PATH);
log.debug("Formating File complete");
//CsvTransformer csvTransformer = new CsvTransformer(OUTPUT_FILE_PATH,TRANSFORM_FILE_PATH);
//csvTransformer.parseCSVInput();
//csvTransformer.writeDataToCsv(CSV_FILE_PATH);
}
public static void formatTxt(String inputFilePath, String outputFilePath) throws IOException {
File inputFile = new File(inputFilePath);
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
File tempFile = new File(outputFilePath);
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String currentLine;
while ((currentLine = reader.readLine()) != null) {
currentLine = currentLine.trim();
if (currentLine.matches(COMMENT_LINE)) {
log.debug(currentLine);
log.debug("Commentline deleted");
continue;
}
if (currentLine.matches(CREATE_BUFFERPOOL)) {
log.debug(currentLine);
log.debug("CREATE BUFFERPOOL deleted");
continue;
}
if (currentLine.matches(GRANT_USE)) {
log.debug(currentLine);
log.debug("GRANT USE deleted");
continue;
}
if (currentLine.matches(CONNECT_TO)) {
log.debug(currentLine);
log.debug("CONNECT TO deleted");
continue;
}
writer.write(currentLine.replace("\t", ""));
writer.newLine();
}
reader.close();
writer.close();
}
}
첫째,이 경우 '사용하는 것이 좋습니다 것입니다/'if'를'formatTxt' 메소드에서 사용합니다. 코드가 작성되면 매번 동일한 문자열을 비효율적으로 재검사하므로 어떤 행인지 식별하면 안됩니다. 둘째, 나는 당신이 그 선을 제거하려고하는 것을 보지 못한다. 라인이 비어있어 다른 if 블록처럼 아무것도하지 않는다면 테스트 한'formatTxt'에서'if'를 기대할 것입니다. – CodeChimp
@CodeChimp "코드 된대로"-> 각'if '블록의 끝에'continue;'가 있습니다. 그래서 다시 테스트하지 않습니다. – fge
여러분의 권리는 일찍 왔고, 보통은 사용하지 않습니다. '계속하기 '때문에 등록되지 않았습니다. 그러나, 나는 여전히 빈 문자열에 대한 테스트를 볼 것으로 예상됩니다. – CodeChimp