首页 > 代码库 > 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