File object is not file
import java.io.*;
class MakeFile {
public static void main(String[] args) {
try {
File directory = new File("d");
File file = new File(directory, "f");
// directory.mkdir();
if(!file.exists()) {
file.createNewFile();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
原始的題目沒有line 9,
因此line 12執行的時候,
因為directory這個變數根本就沒有create,
就會在runtime丟出
java.io.IOException: No such file or directory at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:883) at MakeFile.main(MakeFile.java:12)
File IO sample code:
import java.io.*;
import java.util.*;
public class CopyTextFile {
public static void main(String args[]) {
//... Get two file names from use.
System.out.println(
"Enter a filepath to copy from, and one to copy to.");
Scanner in = new Scanner(System.in);
//... Create File objects.
File inFile = new File(in.next()); // File to read from.
File outFile = new File(in.next()); // File to write to
//... Enclose in try..catch because of possible io exceptions.
try {
copyFile(inFile, outFile);
} catch (IOException e) {
System.err.println(e);
System.exit(1);
}
}
// Uses BufferedReader for file input.
public static void copyFile(File fromFile, File toFile)
throws IOException {
BufferedReader reader =
new BufferedReader(new FileReader(fromFile));
BufferedWriter writer =
new BufferedWriter(new FileWriter(toFile));
//... Loop as long as there are input lines.
String line = null;
while ((line=reader.readLine()) != null) {
writer.write(line);
writer.newLine(); // Write system dependent end of line.
}
//... Close reader and writer.
reader.close(); // Close to unlock.
writer.close(); // Close to unlock and flush to disk.
}
// Uses Scanner for file input.
public static void copyFile2(File fromFile, File toFile)
throws IOException {
Scanner freader = new Scanner(fromFile);
BufferedWriter writer =
new BufferedWriter(new FileWriter(toFile));
//... Loop as long as there are input lines.
String line = null;
while (freader.hasNextLine()) {
line = freader.nextLine();
writer.write(line);
writer.newLine(); // Write system dependent end of line.
}
//... Close reader and writer.
freader.close(); // Close to unlock.
writer.close(); // Close to unlock and flush to disk.
}
}


