文件读取
要想对文件进行读取,就需要一个用 File 对象构造一个 Scanner 对象,如下所示:
Scanner in = new Scanner(Paths.get("myfile.txt"), "UTF-8");
(读取一个文本文件时,要知道它的字符编码,这里以"UTF-8"为例。如果省略字符编码, 则会使用运行这个 Java 程序的机器的“ 默认编码”。如果在不同的机器上运行这个程序, 可能会有不同的表现。)
之后,就可以利用前面介绍的任何一个 Scanner方法对文件进行读取。
注意:一定不要写成下面的形式:
Scanner in = new Scannerrmyfile.txt");
这个 Scanner 将字符串解释为数据, 而不是文件名,出错时不容易发现。
写入文件
需要构造一个 PrintWriter 对象。在构造器中,只需要提供文件名:
PrintWriter out = new PrintWriter("myfile.txt", "UTF-8");
//如果文件不存在,则自动创建该文件
之后,可以像输出到 System.out—样使用 print、 println 以及 printf 命令。
注意
如果用一个不存在的文件构造一个 Scanner, 或者用一个不能被创建的文件名构造一个 PrintWriter, 那么就会发生异常。Java 编译器认为这些异常比“ 被零除” 异常更严重。
现在,应该告知编译器: 已经知道有可能出现“ 输人 / 输出” 异常。这需要在 main 方法中用 throws 子句标记,如下所示:
public static void main(String[] args) throws IOException
{
Scanner in = new Scanner(Paths.get("myfi1e.txt"), "UTF-8");
···
}