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);
}
我得到的错误是无法将文件解析为变量。有人发现我的错误吗?你能解释一下吗。
从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);
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;
}
然后,您需要将调用该方法的结果分配给一个变量。在将它传递给readFile
之前,您应该检查它是否不是null
。比如
File f = createFile();
if (f != null) {
readFile(f);
}
请注意,该文件实际上不会包含任何要读取的内容。它只是在你创建它之后才存在。
import java.io.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCall2 {
public static void CALL(FileOutputStream fr, int w) {
try {
fr.write(w);
} catch (Exception e) {
System.out.println("Exception: " + e);
}
}
public static void main(String[] args) {
try (FileInputStream f = new FileInputStream("c:\code\a.txt")) {
FileOutputStream f2 = new FileOutputStream("c:\code\a2.txt");
int c;
char wd;
while((c = f.read()) != -1) {
System.out.print((char)c);
wd = (char)c;
CALL(f2, c);
}
f.close();
} catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}