public static void createFile() {
File file = new File("C:\\Users\\egecoskun\\Desktop\\javafiles\\anan?nam?.txt");
try {
if (file.createNewFile()) {
System.out.println("Dosya olusturuldu!");
} else {
System.out.println("Dosya zaten var!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
這是我創建檔案的 createFile 方法。
public static void readFile(File file) {
try {
Scanner reader = new Scanner(file);
while(reader.hasNextLine()) {
String line=reader.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
并且此方法正在讀取我正在創建的檔案。但它需要將 File 作為引數,但是當我嘗試在 Main 中運行此方法時
public static void main(String[] args) {
createFile();
readFile(file);
}
我得到的錯誤是檔案無法決議為變數。有沒有人發現我的錯誤?你能解釋一下嗎。
uj5u.com熱心網友回復:
從 createFile 函式回傳檔案物件并將其傳遞給 readFile 函式
public static File createFile() {
File dir = new File("C:\\Users\\egecoskun\\Desktop\\javafiles");
if(dir.exists()) {
dir.mkdirs();
}
File file = new File(dir,"anan?nam?.txt");
file.createNewFile();
return file;
}
在您的主要功能中
File file = createFile();
readFile(file);
uj5u.com熱心網友回復:
createFile是void;這意味著它不會回傳任何東西。在這種情況下,您希望回傳一個File. 喜歡,
public static File createFile() {
File file = new File("C:\\Users\\egecoskun\\Desktop\\javafiles\\anan?nam?.txt");
try {
if (file.createNewFile()) {
System.out.println("Dosya olusturuldu!");
return file;
} else {
System.out.println("Dosya zaten var!");
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
然后您需要將呼叫該方法的結果分配給一個變數。并且您應該null在將其傳遞給 之前檢查它是否不是readFile。喜歡,
File f = createFile();
if (f != null) {
readFile(f);
}
請注意,該檔案實際上不會包含任何要讀取的內容。它只是在您創建之后才存在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/379801.html
標籤:爪哇 文件 例外 java.util.scanner 读者
上一篇:例外未捕獲C 中的溢位或下溢
