这段代码是正确的吗?
String note = "text.txt";
FileWriter file = new FileWriter(note);
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name:");
String name = sc.next();
file.close();
如何将此文件作为命令行参数传递给程序???
答案 0 :(得分:2)
嗯,我个人从不使用FileWriter
,因为它使用的是系统默认编码,这在大多数情况下都是令人讨厌的事情。我更喜欢FileOutputStream
+ OutputStreamWriter
。但是,说过......
您希望作为命令行参数传递什么?文件名称?这很简单:
public static void main(String[] args)
{
// Insert error checking here (e.g. args.length == 0)
String note = args[0]; // For the first argument
// Rest of code here
}
如果那个不是你的意思,请编辑你的问题以澄清它。
根据标题判断,您可能希望从文件中加载而不是System.in
。在这种情况下,您只需传递一个File
对象,或InputStream
(例如FileInputStream
)或Readable
(例如InputStreamReader
)。如果您要传递File
或InputStream
,我强烈建议您传入字符编码名称。 (这就是为什么它需要它作为字符串而不是Charset
超出我的范围,但Java API在编码方面基本上是非常糟糕的。)