从命令行执行 java 程序时文件未写入
File not writing when java program is executed from command line
我有这段代码可以从 IDE 完美执行,创建一个新文件并写入它,但是当我从命令行 运行 它不会写入文件.它仍然打印 println 并接收我的扫描仪输入,但它不会写入新文件。
public class test {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
File f = new File("print.txt");
System.out.println("'y' for yes or 'n' for no");
try {
BufferedWriter k = new BufferedWriter(new FileWriter(f));
if (s.next().equals("y")) {
k.write("y");
}
else {
k.write("n");
}
k.flush();
}
catch (Exception e){
e.printStackTrace();
}
}
}
我在 Windows 10,我用来执行程序的命令是
javac "C:\Users\David\Documents\Java\test.java"
java -cp "C:\Users\David\Documents\Java" test
感谢您的帮助。
没关系,我意识到文件只是在不同的目录中创建的,因为我没有在代码中指定要将文件写入的目录。傻我。
是的..你明白了。使用 cp- (ClassPath cmd) 时,您必须指定需要保存 java 文件的目录名称。
我有这段代码可以从 IDE 完美执行,创建一个新文件并写入它,但是当我从命令行 运行 它不会写入文件.它仍然打印 println 并接收我的扫描仪输入,但它不会写入新文件。
public class test {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
File f = new File("print.txt");
System.out.println("'y' for yes or 'n' for no");
try {
BufferedWriter k = new BufferedWriter(new FileWriter(f));
if (s.next().equals("y")) {
k.write("y");
}
else {
k.write("n");
}
k.flush();
}
catch (Exception e){
e.printStackTrace();
}
}
}
我在 Windows 10,我用来执行程序的命令是
javac "C:\Users\David\Documents\Java\test.java"
java -cp "C:\Users\David\Documents\Java" test
感谢您的帮助。
没关系,我意识到文件只是在不同的目录中创建的,因为我没有在代码中指定要将文件写入的目录。傻我。
是的..你明白了。使用 cp- (ClassPath cmd) 时,您必须指定需要保存 java 文件的目录名称。