文本I/O
File
对象封装了文件或者路径的属性,但是不包含从/向文件读/写数据的方法,需要使用Java I/O类创建对象。输出对象叫输出流,输入对象称为输入流。
- 将文本写入temp.txt的文件中,可以使用PrintWriter类。
PrintWriter pw = new PrintWriter("temp.txt");;
print
向文件写入字符串
output.print("HELLO WORLD");
- 最后关闭文件
output.close();
Scanner
输入类,以下从temp.txt创建输入对象并实现读取。
Scanner input=new Scanner(new File("temp.txt"));
System.out.println(input.nextline());
文本与二进制I/O
所有文件以二进制来存储,计算机不区分二进制文件和文本文件。在写入一个字符时,Java虚拟机会将统一码转化成文件指定的编码。文本I/O需要编码和解码,而二进制不需要转换,故而其比文本的I/O效率更高。
二进制I/O
注意:几乎所有I/O类中的所有方法都声明抛出java.io.IOException或者它的子类。记得声明抛出异常或者使用try-catch
FileInputStream
从文件读,FileOutputStream
向文件写。他们没有引入新的方法,都是继承InputStream
和OutputStream
。
前两个构造方法会删除文件中的当前内容,追加可以使用后两个。- 当需要处理基本数值类型时,使用
DataInputStream
和DataOutputStream
。