这篇随笔记录了简单的文件输入与输出,是我在学习《Java核心技术卷Ⅰ》第61页到第62页时的一些整理。只用到了极简单的方法。
文件读取
要想对文件进行读取,就需要用一个File对象构造一个Scanner对象,如:
Scanner in = new Scanner(Paths.get("myfile.txt"),"UTF-8");
上面的第二个参数是可以省略的,但是将采用运行这个Java程序的机器的默认编码。
现在就可以使用Scanner的方法对文件进行读取了。例如:
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Scanner;
public class test{
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(Paths.get("myfile.txt"),"UTF-8");
String string = sc.nextLine();
System.out.println(string);
}
}
上面的简单代码将会打印出myfile.txt文件中的一行字符。
注意:上面的文件地址因为放在了启动位置下,所以可以直接写文件名。下面还将仔细说明文件的地址。
文件写入
要想写入文件,就需要构造一个PrintWrite对象。在构造器中,只需提供文件名:
PrintWrite pw = new PrintWrite("myfile.txt","UTF-8");
如果文件不存在,创建该文件。现在可以用像输出到System.out一样使用print、println、printf命令。例如:
import java.io.IOException;
import java.io.PrintWriter;
public class test{
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter("myfile.txt","UTF-8");
pw.print("hello world!");
pw.close();
}
}
在代码结尾应当关闭pw,或者使用pw.flush()进行刷新,不然数据会丢失。
文件位置
文件地址可以使用相对地址,也可以使用绝对地址。
当指定一个相对文件名时,文件位于Java虚拟机启动路径的相对位置。如果在命令行方式下启动程序,启动路径就是命令解释器的当前路径。如果使用集成开发环境,那么启动路径将由IDE控制。可以使用下面的调用方式找到路径的位置:
String dir = System.getProperty("user.dir");
当然也可以使用绝对路径,不过别忘了在“”前再加一个“”。