首页 > 代码库 > java 文本文件I/O 、二进制文件I/O
java 文本文件I/O 、二进制文件I/O
文本文件:可以用编辑器打开编辑的文件
二进制文件:不能用编辑器编辑的仅供程序读取的文件。
文本I/O需要编码解码。
二进制I/O不需要编码解码,因此更高效。
*****************文本文件的I/O*****************************
public class fileInput {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
File file = new File("a.txt");//如果没有该文件,自动创建
System.out.println(file.exists());///判断该文件是否存在
System.out.println(file.length());///返回文件大小
System.out.println(file.canRead());///判断文件的可读性
System.out.println(file.isDirectory());////File对象代表的是一个目录
System.out.println(file.isAbsolute());////file文件是不是绝对路径
System.out.println(file.isHidden());///判断文件是否是隐藏的
System.out.println(file.getAbsolutePath());///取得文件的绝对路径
System.out.println(new Date(file.lastModified()));///获取文件最后 一次呗修改的时间
// 向文件写入数据
try(PrintWriter print = new PrintWriter(file);) {
print.print("Hello,i am from NewYork!");//写入字符串
print.println(123456); //写入数值
}
////从文件读取数据 ,控制台输出
try(Scanner input = new Scanner(file);
){
System.out.println(input.next());
while(input.hasNext()){
System.out.println(input.next());
}
}
}
}
*********************二进制文件I/O********************
抽象类 InputStream: 读取二进制数据的根类 。抽象类 OutputStream:写入二进制数据的根类
FileOutputStream是OutputStream的子类,向文件写入数据
FileInputStream是InputStream的子类,从文件读取数据
try-with-resources 声明和创建输入输出流 ,使用后可以自动关闭
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
//二进制所有方法都声明为抛出java.io.IOException或者jav.io.IOException的子类
public static void main(String[] args) throws IOException {
try(FileOutputStream output = new FileOutputStream("C:\\Users\\Cortana\\Desktop\\myfile1");){
for (int i = 0; i <=100; i++) {
output.write(i); //向指定路径,(windows下)的文件写入0-100的数
}
}
try(FileOutputStream output = new FileOutputStream("temp.txt");){
for (int i = 100; i <=200; i++) {
output.write(i); //向默认路径文件temp.txt写入100-200的数
}
}
try( FileInputStream input = new FileInputStream("C:\\Users\\Cortana\\Desktop\\myfile1");){
int value;
while((value=http://www.mamicode.com/input.read())!=-1){
System.out.println(value+" "); //从文件读取数据,在控制台输出
}
System.out.println();
}
try( FileInputStream input = new FileInputStream("temp.txt");){
int value;
while((value=http://www.mamicode.com/input.read())!=-1){
System.out.println(value+" "); //从文件读取数据,在控制台输出
}
System.out.println();
}
}
}
java 文本文件I/O 、二进制文件I/O