JAVA语言_第八章_java.io_包
第八章 java.io 包
ACCP V4.0
JAVA语言_第八章_java.io_包
回顾使用Date 类获取系统当前时间 Calendar类的使用 使用 Random 类的对象生成随机数 Collection 类的对象的使用 HashMap 对象以键和值的关系形式存储数据
2
ACCP V4.0
JAVA语言_第八章_java.io_包
目标运用File类进行文件操作 理解流,标准输入/输出流的概念 运用FileInputStream和FileOutputStream类读写 文本文件 运用BufferedReader和BufferedWriter类读写文本 文件 运用DataInputStream和DataOutputStream类 读写二进制文件
3
ACCP V4.0
JAVA语言_第八章_java.io_包
文件 3-1什么是文件? 文件可认为是相关记录或放在一起的数据的集合 文件一般存储在哪里?
JAVA程序一般通过什么去访问文件属性? JAVA API :java.io.File 类4ACCP V4.0
JAVA语言_第八章_java.io_包
文件 3-2File 类
构造文件对象
物理文件或目录
操作文件或目录的属性(路径、权限、日期和时间等 )5
ACCP V4.0
JAVA语言_第八章_java.io_包
文件 3-3import java.io.File; …… File file = new File(args[0]); System.out.println("文件或目录是否存在:" + file.exists()); System.out.println("是文件吗:" + file.isFile()); System.out.println("是目录吗:" + file.isDirectory()); System.out.println("名称:" + file .getName()); System.out.println("路径: " + file.getPath()); System.out.println("绝对路径: " + file.getAbsolutePath()); System.out.println("最后修改时间:" + stModified()); System.out.println(“文件大小:” + file.length()+ “ 字节”); ……
6
演示:示例 1ACCP V4.0
JAVA语言_第八章_java.io_包
流 3-1流是指一连串流动的字符,是以先进先出方式发送 先进先出方式发送 流是指一连串流动的 信息的通道 信息
InputStream
F
E
D
C
B
A
OutputStream
来自数据源的数据流 流向目的地的数据流7ACCP V4.0
JAVA语言_第八章_java.io_包
流 3-2
8
ACCP V4.0
JAVA语言_第八章_java.io_包
流 3-3Java流的分类字节流 8位 InputStream OutputStream 字符流 16 位 Unicode Reader Writer
9
ACCP V4.0
JAVA语言_第八章_java.io_包
文件的读写文本文件的读写用FileInputStream读文本文件 读文本文件 用FileOutputStream写文本文件 写文本文件 用BufferedReader读文本文件 读文本文件 用BufferedWriter写文本文件 写文本文件
二进制文件的读写
10
ACCP V4.0
JAVA语言_第八章_java.io_包
用FileInputStream 读文本文件3-1引入相关的类import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream;
构造一个文件输入流对象 InputStream fileobject = new FileInputStream(“text.txt”);
11
ACCP V4.0
JAVA语言_第八章_java.io_包
用FileInputStream 读文本文件3-2利用文件输入流类的方法读取文本文件的数据fileobject.available(); //可读取的字节数 fileobject.read(); fileobject.close(); //读取文件的数据
关闭文件输入流对象
12
ACCP V4.0
JAVA语言_第八章_java.io_包
用FileInputStream 读文本文件3-3public static void main(String[] args) throws IOException { int size; InputStream fileobject = new FileInputStream(args[0] ); System.out.println(“可读取的字节数: " + (size = fileobject.available())); 创建一个 char[] text = new char[200] ; FileInp
utStream 对象 for (int count = 0; count < size; count++) { text[count] = ((char) fileobject.read()); System.out.print(text[count]); 使用 available( ) 方法确 } 定文件的大小 System.out.println(""); fileobject.close(); } 使用 read( ) 方法一次读取 一个字符,然后将字符存储 在字符数组中并显示字符13
演示:示例 2ACCP V4.0
JAVA语言_第八章_java.io_包
用FileOutputStream 写文本文件3-1引入相关的类import java.io.IOException; import java.io.OutputStream; import java.io.FileOutputStream;
构造一个文件输出流对象OutputStream fos = new FileOutputStream("Text.txt");
14
ACCP V4.0
JAVA语言_第八章_java.io_包
用FileOutputStream 写文本文件3-2利用文件输出流的方法写文本文件String str ="好好学习Java"; byte[] words = str.getBytes(); fos.write(words, 0, words.length);
关闭文件输出流fos.close();
15
ACCP V4.0
JAVA语言_第八章_java.io_包
用FileOutputStream 写文本文件 3-3
public static void main(String[] args) { try { String str ="好好学习Java"; byte[] words = str.getBytes(); OutputStream fos = new FileOutputStream("Text.txt"); fos.write(words, 0, words.length); System.out.println("Text文件已更新!"); fos.close(); } catch (IOException obj) { 使用 write( ) 方法 System.out.println("创建文件时出错!"); 将数据写入文件 } }
演示:示例 316ACCP V4.0
JAVA语言_第八章_java.io_包
用BufferedReader 读文本文件 3-1引入相关的类import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException;
构造一个BufferedReader对象FileReader fr=new FileReader("mytest.txt"); BufferedReader br=new BufferedReader(fr);
17
ACCP V4.0
JAVA语言_第八章_java.io_包
用BufferedReader 读文本文件 3-2利用BufferedReader的方法读取文本文件的数据 br.readLine(); 关闭相关的流对象 br.close(); fr.close();; //读取一行数据,返回字符串
18
ACCP V4.0
JAVA语言_第八章_java.io_包
用BufferedReader 读文本文件 3-3/**创建一个FileReader对象.*/ FileReader fr=new FileReader("mytest.txt"); /**创建一个BufferedReader 对象.*/ BufferedReader br=new BufferedReader(fr); /**读取一行数据.*/ String line=br.readLine(); while(line!=null){ System.out.println(line); line=br.readLine(); } /**流的关闭.*/ br.close(); fr.close();19
创建一个 FileReader 对象 创建一个 BufferedReader对象
演示:示例 4ACCP V4.0
JAVA语言_第八章_java.io_包
用BufferedWriter 写文本文件 3-1引入相关的类import java.io.FileWriter ; import java.io.BufferedWriter ; import java.io.IOException;
构造一个BufferedWriter对象FileWriter fw=new FileWriter("mytest.txt"); BufferedWriter bw=new BufferedWriter(fw);
20
ACCP V4.0
JAVA语言_第八章_java.io_包
用BufferedWriter 写文本文件 3-2利用BufferedWriter的方法写文本文件bw.write (“hello”);
相关流对象的清空和关闭bw.flush(); fw.close();
21
ACCP V4.0