public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(new FileReader(args[1]));
String co = sc.next();
coup = Integer.parseInt(co);
当我尝试将int传递到命令行中的第二个参数时,我得到一个FileNotFoundException。这只是代码的一部分,文本文件作为args [0]传递。但是,我无法弄清楚如何传递一个简单的整数,只有文本文件。
答案 0 :(得分:1)
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;
currentlyViewHolder.view.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height));
您声明文本文件是第一个参数(args [0]),因此在扫描程序中指定它并且在获取整数时,您需要做的就是将args [1]发送到Integer.parseInt方法。您将获得异常,因为您正在为FileReader对象分配传入的整数的文件名。
答案 1 :(得分:0)
您无法通过int
,但您可以解析一个:
public static void main(String[] args) {
String filename = args[0];
int i = Integer.parseInt(args[1]);
// ...
}
如果你得到FileNotFoundException
,一种简单的调试方法是:
File file = new File(filename);
System.out.println(file.getAbsolutePath());
问题出在哪里很明显,几乎总是应用程序的当前目录不是你想象的那样。
答案 2 :(得分:0)
查看您的代码,内容如下:
显然需要对第一个参数中的文件进行排序,看起来像是预期的。
创建一个名为number.txt的文件:
var commentsRef = new Firebase("https://awesome.firebaseio-demo.com/comments");
var linkRef = new Firebase("https://awesome.firebaseio-demo.com/links");
var linkCommentsRef = linkRef.child(LINK_ID).child("comments");
linkCommentsRef.on("child_added", function(snap) {
commentsRef.child(snap.key()).once("value", function() {
// Render the comment on the link page.
});
});
NumberPrinter.java:
42
运行如下:
import java.io.Scanner;
import java.io.FileReader;
public final class NumberPrinter {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(new FileReader(args[1]));
String numberInFile = scanner.next();
int number = Integer.parseInt(numberInFile);
System.out.println(number);
}
}
它会打印出来:
java NumberPrinter number.txt
或者,如果您打算直接从命令行参数解析int,请尝试:
42
NumberOrFilenameAwkward.java:
public final class NumberPrinterDirect {
public static void main(String[] args) throws Exception {
int number = Integer.parseInt(args[0]);
System.out.println(number);
}
}
这是一个糟糕的解决方案,并且使用命令行解析库(如JewelCLI或commons-cli)来干净利落地解决它。