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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

未處理異常的看似虛假的錯(cuò)誤消息

未處理異常的看似虛假的錯(cuò)誤消息

婷婷同學(xué)_ 2022-10-26 17:05:55
這是代碼:import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.FileReader;import java.io.BufferedReader;import java.util.stream.Collectors;import java.io.FileWriter;import java.io.BufferedWriter;import java.util.List;public class CSVIO{    //read a file and return a list of records in the file    public static List<String[]> read(File f) throws IOException    {        BufferedReader br = new BufferedReader(new FileReader(f));        List<String[]> out = br.lines()                               .map( e -> e.split(","))                               .collect(Collectors.toList());        return out;    }    //write from a list of recrords into CSV format    public static void write(List<String[]> items, File dest) throws IOException    {        //return true if it successfully writes.            final BufferedWriter bw = new BufferedWriter(new FileWriter(dest));            items.stream()                 .map( row -> String.join(",",  row))                 .forEach( row  -> bw.write(row + "\n"));    }}我在運(yùn)行時(shí)收到此錯(cuò)誤消息:$ javac CSVIO.javaCSVIO.java:29: error: unreported exception IOException; must be caught or declared to be thrown                 .forEach( row  -> bw.write(row + "\n"));                                           ^1 error我已正確聲明 write 方法會(huì)引發(fā)異常。有什么我想念的嗎?
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

問題是,你br.write()拋出了異常。您必須在 lambda 表達(dá)式 ( .forEach()) 中捕捉到這一點(diǎn):


items.stream()

     .map(row -> String.join(",",  row))

     .forEach( row  -> {

         try {

             bw.write(row + "\n");

         } catch (IOException e) {

             e.printStackTrace();

         }

     });

但是您可以使用以下方法縮短它Files.write():


public static void write(List<String[]> items, Path path) throws IOException {

    List<String> lines = items.stream()

            .map(row -> String.join(",", row))

            .collect(Collectors.toList());

    Files.write(path, lines);

}

您還可以使用以下方法簡(jiǎn)化您的read方法Files.lines():


public static List<String[]> read(Path path) throws IOException {

    try (Stream<String> lines = Files.lines(path)) {

        return lines

                .map(e -> e.split(","))

                .collect(Collectors.toList());

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-10-26
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)