我寫了一個從螢幕讀入檔案位置,然後印在螢幕上。
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了");
}
}
}
估計是 System.in 抓到的檔名不存在,直接拋錯到 catch 那段。
試試看去ChatGPT找下System.in的範例吧!
上圖是我檢索的範例:『How to use System.in in java library』。
先印出來看看檔名是否正確。