我可以在文本文件中使用Scanner类来获取信息吗?

时间:2009-07-01 12:49:51

标签: java file io java.util.scanner filewriter

这段代码是正确的吗?

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();

如何将此文件作为命令行参数传递给程序???

1 个答案:

答案 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 )。如果您要传递FileInputStream,我强烈建议您传入字符编码名称。 (这就是为什么它需要它作为字符串而不是Charset超出我的范围,但Java API在编码方面基本上是非常糟糕的。)