第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的代碼的文件輸出限制是多少?

我的代碼的文件輸出限制是多少?

慕桂英3389331 2021-12-01 20:02:27
我剛剛制作了一個非常簡單的解析器,它從文件中獲取輸入并輸出到文件中。它對您提供的文件進行逐行解析,并對文件的所有行迭代相同的函數(shù),然后將整個字符串重定向到另一個文件。我給parseLine函數(shù)一個JsonObjectBuilder以便它可以繼續(xù)向輸出字符串添加類似 json 的結(jié)構(gòu)(它是 json 解析器的普通文本)。解析文件函數(shù)private String parseFile(String file) throws IOException {    BufferedReader reader = new BufferedReader(new FileReader (file));    JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();    String line;    try{      while((line = reader.readLine()) != null){        parseLine(line, jsonBuilder);      }    } finally {      reader.close();    }    return jsonBuilder.build().toString();  }解析器類public Parser(String file) throws IOException {    PrintWriter out = new PrintWriter(System.getProperty("user.dir") + "/parser/src/main/resources/logFormatted.log");    System.out.println("Initiated Parser class!");    out.println(parseFile(file));  }parseLine 函數(shù)private JsonObjectBuilder parseLine(String line, JsonObjectBuilder jsonBuilder){    String timestamp = null;    String eventCode = null;    String payload = null;    String finalString = null;    try {        timestamp = line.substring(0, 23);        eventCode = line.substring(24, 28);        payload = line.substring(29, line.length());        jsonBuilder.add(timestamp, Json.createObjectBuilder()                      .add("eventCode", eventCode)                      .add("payload", payload)                    );    } catch (Exception ex) {      System.out.println("ERROR: " + ex);    }    return jsonBuilder;  }主要的public static void main( String[] args ) throws IOException{        Parser parser = new Parser(System.getProperty("user.dir") + "/parser/src/main/resources/newFormatLog.log");    }這段代碼的問題在于,當它被執(zhí)行時,它會像預期的那樣進行解析,但不會解析整個文件?,F(xiàn)在我給它一個 ~4550 行的文件,但它確實輸出了一個 ~4400 行的文件。我真的不知道為什么,我開始認為字符串太大而無法處理。也許我需要立即將這些行輸出到文件中,而不是做最后的大動作。非常感謝所有幫助!
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

發(fā)現(xiàn)問題了。這真的很愚蠢。


public Parser(String file) throws IOException {

    PrintWriter out = new PrintWriter(System.getProperty("user.dir") + "...");

    System.out.println("Initiated Parser class!");

    

    out.println(parseFile(file));

  }

在這個構(gòu)造函數(shù)中,我沒有關閉 PrintWriter。剛剛添加out.close();,一切都按預期工作。


public Parser(String file) throws IOException {

    try (PrintWriter out = new PrintWriter(System.getProperty("user.dir") + "...")) {


        System.out.println("Initiated Parser class!");

        out.println(parseFile(file));


     }

  }

您可以參考這個其他問題作為參考。


編輯:try(PrintWriter out = ...)按照評論中的建議添加


查看完整回答
反對 回復 2021-12-01
  • 1 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號