iT邦幫忙

0

Java input reader 放在 try的()直接就到catch了

  • 分享至 

  • xImage

我寫了一個從螢幕讀入檔案位置,然後印在螢幕上。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;

public class ReadTxtFile2 {

可以執行但是檔案位置要手key, 有沒有語法可以叫出視窗用瀏覽的
public static void main(String[] args) {
	System.out.println("檔名:");
    //reader在{}裡
	try {
		InputStreamReader ir= new InputStreamReader(System.in);
	     BufferedReader br = new BufferedReader(ir);
	     String str = br.readLine();
	     FileReader fr = new FileReader(str);
	     System.out.println("內容如下:");
		 int ch;
		 while ((ch=fr.read())!=-1) {
			 System.out.print((char)ch);
		 }
		 fr.close();
		 br.close();
		 ir.close();
	} catch (Exception e) {
		System.out.println("QQ了");
	}
}

}

我把reader都搬到try()裡,說是不用關檔案 JVM會自己關 但是一執行就到catch去了

import java.io.*;

public class ReadTxtFile {

public static void main(String args[]) throws IOException {
System.out.println("檔名:");
//reader在()裡就到 catch了
try(InputStreamReader ir= new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ir);
FileReader fr = new FileReader(br.toString());
){
System.out.println("內容如下:");
int ch;
while ((ch=fr.read())!=-1) {
System.out.print((char)ch);
}
}catch (Exception e) {
System.out.println("QQ了");
}
}
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Darwin Watterson
iT邦好手 1 級 ‧ 2022-12-15 00:03:55

估計是 System.in 抓到的檔名不存在,直接拋錯到 catch 那段。
https://ithelp.ithome.com.tw/upload/images/20221215/20109107ym8OLgwVRI.jpg
試試看去ChatGPT找下System.in的範例吧!
上圖是我檢索的範例:『How to use System.in in java library』。
先印出來看看檔名是否正確。/images/emoticon/emoticon29.gif

是連key連結的機會就直接報錯 但是我在書上找到相關的章節了 謝謝你的回覆

我要發表回答

立即登入回答