Java简单的读写文件

这篇随笔记录了简单的文件输入与输出,是我在学习《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");

当然也可以使用绝对路径,不过别忘了在“\”前再加一个“\”。

posted @ 2020-05-28 11:49  z十万嬉皮  阅读(187)  评论(0编辑  收藏  举报