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=input.read())!=-1){
                System.out.println(value+" ");    //从文件读取数据,在控制台输出
            }
            System.out.println();
        }
        
        try(    FileInputStream input = new FileInputStream("temp.txt");){
            int value;
            while((value=input.read())!=-1){
                System.out.println(value+" ");    //从文件读取数据,在控制台输出
            }
            System.out.println();
        }
    }
}


 

转载于:https://www.cnblogs.com/ihins/p/6135986.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值