Java高级运用 第三节 IO流

一、File

1.File概述

  • File:文件的意思(文件和文件夹),对计算机来说,文件就是指定盘符下的文件或者文件夹。
  • 构造方法:public File(String pathname) pathname:文件的路径

2.File常用方法

  • 方法:
    1.创建文件:public boolean createNewFile() 创建文件,如果文件存在,就不创建,返回false
    2.创建文件夹:public boolean mkdir() 创建文件夹,如果文件夹存在,就不创建,返回false,只能创建单个文件夹 mkdir(make directory)
    3.创建多层文件夹:public boolean mkdirs() 创建文件夹,如果文件夹存在,就不创建,返回false,可以创建多层文件夹
    4.判断是否是文件:public boolean isFile()
    5.判断是否是文件夹:public boolean isDirectory()
    6.判断文件是否存在:public boolean exists()
    7.判断文件的大小:public long length() 返回的是字节个数 结果/1024/1024就是MB
    8.获取某个文件夹下面的文件:public String[] list() 返回的是字符串数组,表示的是文件夹下面的文件或者文件夹的名称
  • windows下的路径分隔符:
    linux下的路径分隔符符:/

二、流

1.字节输入/输出流

  • 字节输入流:FileInputStrem(读取数据到内存)
    字节输出流:FileOutputStrem(写数据到文件 )
  • 字节输入流
File f=new File("xinzhi.txt"); //定位文件位置
  InputStream in=new FileInputStream(f); //创建字节输入流连接到文件
  byte[] b=new byte[1024]; //定义一个数组,用来存放读入的数据 byte数组的大小也可以       	根据文件大小来定 (int)f.length()
  int count =0; 
  int temp=0;
  while((temp=in.read())!=(-1)){ //in.read()是逐字节读的。当读到文件末尾时候返回-1
  b[count++]=(byte)temp; //将读到的字节存储到byte数组中 
  }
  in.close(); //关闭流
  System.out.println(new String(b)); //打印读取到的字节
  • 字节输出流
File f = new File("xinzhi.txt"); // 定位文件位置
  OutputStream out = new FileOutputStream(f); // 创建字节输出流连接到文件
  String str = "欣知大数据"; 
  byte[] b = str.getBytes(); //将数据存入byte数组
  out.write(b); //写数据 
  out.close(); //关闭流

2.字符输入/输出流

  • 字符流的底层还是字节流, 字符流是专门处理文本的
  • 字符输入流: FileReader
    字符输出流: FileWriter
  • 字符输入流:
 File f = new File("xinzhi.txt"); // 定位文件位置
    char[] ch = new char[100]; //定义一个数组,用来存放读入的数据
    Reader read = new FileReader(f); //创建字符输入流连接到文件
    int count = read.read(ch); //读操作
    read.close(); //关闭流
    System.out.println("读入的长度为:" + count);
    System.out.println("内容为" + new String(ch, 0, count));
  • 字符输出流:
File f=new File("xinzhi.txt"); // 定位文件位置
    Writer out =new FileWriter(f); //创建字符输出流连接到文件
    String str="欣知大数据"; 
    out.write(str); //写操作 
    out.close(); //关闭流    

3.字符缓冲输入/输出流

  • 字符缓冲输入流
  File f = new File("xinzhi.txt"); // 定位文件位置
    char[] ch = new char[100]; //定义一个数组,用来存放读入的数据
    Reader read = new FileReader(f); //创建字符输入流连接到文件
    BufferedReader bfr=new BufferedReader(read); //创建缓冲流
    int count = bfr.read(ch); //读操作
    bfr.close(); //关闭缓冲流
    read.close(); //关闭流
    System.out.println("读入的长度为:" + count);
    System.out.println("内容为" + new String(ch, 0, count));
  • 字符缓冲输出流
File f=new File("xinzhi.txt"); // 定位文件位置
    Writer out =new FileWriter(f); //创建字符输出流连接到文件
    BufferedWriter bfw =new BufferedWriter(out); //创建缓冲流
    String str="欣知大数据"; 
    bfw.write(str); //写操作 
    bfw.close(); //关闭缓冲流
    out.close(); //关闭流
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值