首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java删除txt文件中的空行

Java删除txt文件中的空行
EN

Stack Overflow用户
提问于 2014-03-13 11:59:37
回答 2查看 5.4K关注 0票数 0

我从一个运行良好的文本文件中删除了一些行,但是空行有问题。那些仍然在.txt文件中,我不知道如何删除或放置它们,我在谷歌上搜索了一个解决方案,但我失败了。有人知道我怎么能去掉空白行吗?我试了一下:

代码语言:javascript
复制
 currentLine.trim().length() == 0 ); but still with out success

油箱

代码语言:javascript
复制
    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();


    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-13 12:08:33

为什么不在currentLine = currentLine.trim();之后添加以下代码:

代码语言:javascript
复制
if (currentLine.isEmpty())
    continue;
票数 2
EN

Stack Overflow用户

发布于 2014-03-13 12:05:03

代码语言:javascript
复制
currentLine = currentLine.trim();
if (!currentLine .equals("")) // don't write out blank lines
    {
        writer.write(currentLine , 0, currentLine .length());
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22377964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档