一、JAVA程序如何访问文件属性
JAVA API:JAVA.IO.FILE类
二、FILE类访问文件属性
FILE类->创建文件对象的方法->操作文件或目录的属性
三、FILE类的常用方法
四、流
1、流是一组有序的数据序列
2、以先进先出方式发送信息的通道
五、JAVA流的分类
1、按流向区分:输出流:outputstream和writer作为基类
输入流:inputstream和reader作为基类
2、按照处理数据单元划分:字节流:输入:inputstream基类
输出:outputstream基类
字符流:输入:reader基类
输出:writer基类
六、inputstream类常用方法
1、int read();从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果到了输入流的末尾,返回-1.
2、int read(byte[] b);从输入流读取若干字节,把这些字节保存到字节数组b中,返回的是读取的字节数,如果到了输入流的末尾,返回-1.
3、int read(byte[] b,int off,int len);从输入流读取若干字,把这些字节保存到字节数组b中,off指的是字数组中开始保存数据的起始下标,len指的是读取的字节数目。返回的是读取到的字节数,如果到输入流的末尾,返回-1.
4、void close();关闭流
5、int available();可以从输入流中读取的字数目
子类FileInputStream常的构造方法
1、FileInputStream(File file);文件名
2、FileInputStream(String name);路径
七、使用FileInputStream读文本文件的步骤:
1、引入相关的类
2、构造文件输入流FileInputStream对象
3、读取文本文件的数据
4、关闭文件流对象
八、OutputStream类常用方法
1、int write(int c);
2、int write(byte[] buf);
3、int write(byte[] b,int off,int len);
4、void close();关闭流
5、void flush();强制把缓冲区的数据写到输出流中
子类FileoutputStream常的构造方法
1、FileoutputStream(File file);文件名
2、FileoutputStream(String name);路径
3、FileOutputStream(String name,boolean append);可以指定是覆盖或者追加文件内容
作业:将work.txt中的内容复制到workcopy.txt中
package com.java.homework; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * 将work.txt中的内容复制到workcopy.txt中 * @author Administrator * */ public class Copy { public static void main(String[] args) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("work.txt"); fos = new FileOutputStream("workcopy.txt"); int r = -1; String s = ""; //判断是否读取到末尾 while((r = fis.read())!=-1) { //将读取出来的数据再转成char类型 s += (char)r; } //在控制台上输出work.txt中的内容 System.out.println(s); //将从work.txt读取出来的数据放在byte[] b数组中 byte[] b = s.getBytes(); //将存在byte[] b数组中的数组输出到workcopy.txt fos.write(b, 0, b.length); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { try { if(fos!=null) { fos.close(); } if(fis!=null) { fis.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
结果示例:
work.txt中的内容
控制台上的内容:
复制后workcopy中的内容是: