
第10章输入、输出流 王绍卿
1 第10章 输入、输出流 王绍卿

导读 主要内容 字节流与字符流 缓冲流 随机流 ● 数组流 数据流 。 对象流 序列化与对象可隆 文件锁 使用Scanner解析文件 难点 ● 序列化与对象可隆 ·使用Scanner解析文件
2 导读

概述 •输入、输出流提供一条通道程序,可以使用这条通道读取源中 的数据或把数据传送到目的地。 •把输入流的指向称作源,程序从指向源的输入流中读取源中的 数据; 而输出流的指向是数据要去的一个目的地,程序通过向输出流 中写入数据把数据传送到目的地。 输入流通过使 输出流通过使 用read0方法 用wite0方法 源 目的地 读取源中的数 把数据写入到 据 目的地 图10.1输入流示意图 图102输出流示意图
3 概述 •输入、输出流提供一条通道程序,可以使用这条通道读取源中 的数据或把数据传送到目的地。 •把输入流的指向称作源,程序从指向源的输入流中读取源中的 数据; •而输出流的指向是数据要去的一个目的地,程序通过向输出流 中写入数据把数据传送到目的地

§10.1Fi1e类 F1Ie对象主要用来获取文件本身的一些信息, 不涉及对文件的读写操作。 创建一个File对象的构造方法有3个: File(String filename); File(String directoryPath,String filename); File(File f,String filename); 2025/4/2
2025/4/2 4 §10.1 File类 File对象主要用来获取文件本身的一些信息, 不涉及对文件的读写操作。 创建一个File对象的构造方法有3个: File(String filename); File(String directoryPath,String filename); File(File f, String filename);

§10.1.1文件的属性 Fle类的下列方法获取文件本身的一些信息。 public String getName()获取文件的名字。 public boolean canRead()判断文件是否是可读的。 public boolean canWrite)判断文件是否可被写入。 public boolean exits)判断文件是否存在。 public long length()获取文件的长度(单位是字节) public String getAbsolutePath()获取文件的绝对路径。 public String getParent0获取文件的父目录。 public boolean isFile0判断文件是否是一个普通文件,而不是目录。 public boolean isDirectroy)判断文件是否是一个目录。 public boolean isHidden()判断文件是否是隐藏文件。 public long lastModified0获取文件最后修改的时间
5 §10.1.1 文件的属性 File类的下列方法获取文件本身的一些信息。 public String getName() 获取文件的名字。 public boolean canRead() 判断文件是否是可读的。 public boolean canWrite()判断文件是否可被写入。 public boolean exits()判断文件是否存在。 public long length() 获取文件的长度(单位是字节)。 public String getAbsolutePath() 获取文件的绝对路径。 public String getParent() 获取文件的父目录。 public boolean isFile() 判断文件是否是一个普通文件,而不是目录。 public boolean isDirectroy()判断文件是否是一个目录。 public boolean isHidden() 判断文件是否是隐藏文件。 public long lastModified()获取文件最后修改的时间

10-1 Example10_1.java import java.io.*; public class Example10_1{ public static void main(String args){ File f=new File("C:\Ich10","Example10_1.java"); System.out.printIn(f.getName(0+"是可读的吗:"+f.canRead(0); System.out.printIn(f.getName0+"的长度:"+f.length(0i System.out.println(f.getName(0+"的绝对路径:"+f.getAbsolutePath(); File file new File("new.txt"); System.out.println("在当前目录下创建新文件"+file.getName(); if(!file.exists()){ try file.createNewFile(); System.out.println("创建成功); catch(IOException exp){
例10-1 Example10_1.java ◼ import java.io.*; ◼ public class Example10_1 { ◼ public static void main(String args[]) { ◼ File f = new File("C:\\ch10","Example10_1.java"); ◼ System.out.println(f.getName()+"是可读的吗:"+f.canRead()); ◼ System.out.println(f.getName()+"的长度:"+f.length()); ◼ System.out.println(f.getName()+"的绝对路径:"+f.getAbsolutePath()); ◼ File file = new File("new.txt"); ◼ System.out.println("在当前目录下创建新文件"+file.getName()); ◼ if(!file.exists()) { ◼ try { ◼ file.createNewFile(); ◼ System.out.println("创建成功"); ◼ } ◼ catch(IOException exp){} ◼ } ◼ } ◼ }

例10-1 Example10 1.java 例10-1中,使用上述的一些方法,获取某些文件的信息, 创建一个名字为new.txt的新文件。程序运行效果如图 10.3所示。 C:\ch10>java Example10_1 Example10_1.jawa是可读的吗:true xample10_1.java的长度:651 Example101.jawa的绝对路径:C:\ch10 Example10_1.java 在当前目录下创健新文件new.txt 创建成功 图10.3获取文件的相关信息 2025/4/2
2025/4/2 7 例10-1 Example10_1.java 例10-1中,使用上述的一些方法,获取某些文件的信息, 创建一个名字为new.txt的新文件。程序运行效果如图 10.3所示

§10.1.2目录 l.创建目录public boolean mkdir() 2.列出目录中的文件 ◆public String list()用字符串形式返回目录下的全部文件。 ◆public File listFiles0用File对象形式返回目录下的全部文件。 ◆public String]list(FilenameFilter obj)用字符串形式返回目录 下的指定类型的所有文件。 ◆ public File listFiles(FilenameFilter obj)用File对象形式返▣ 目录下的指定类型所有文件。 上述两方法的参数FilenameFilter是一个接口,该接口有一个 方法: public boolean accept(File dir,String name);
8 §10.1.2 目录 1.创建目录 public boolean mkdir() 2.列出目录中的文件 ◆ public String[] list() 用字符串形式返回目录下的全部文件。 ◆ public File [] listFiles() 用File对象形式返回目录下的全部文件。 ◆ public String[] list(FilenameFilter obj) 用字符串形式返回目录 下的指定类型的所有文件。 ◆ public File [] listFiles(FilenameFilter obj) 用File对象形式返回 目录下的指定类型所有文件。 上述两方法的参数FilenameFilter是一个接口,该接口有一个 方法: public boolean accept(File dir,String name);

列出文件夹下所有文件 import java.io.*; public class Example1{ public static void main(String args[]){ String path="E:\lsql"; File file new File(path); for(String s:file.list()) System.out.println(s);
列出文件夹下所有文件 ◼import java.io.*; ◼public class Example1 { ◼ public static void main(String args[]) { ◼ String path = "E:\\sql"; ◼ File file = new File(path); ◼ for(String s:file.list()) ◼ System.out.println(s); ◼ } ◼}

列出文件夹下所有文件 import java.io.*; a public class Example2{ ■ public static void main(String args[]){ String path="E:\lsql"; File file=new File(path); for(String s:file.list()) System.out.println(s); ■}
列出文件夹下所有文件 ◼import java.io.*; ◼public class Example2 { ◼ public static void main(String args[]) { ◼ String path = "E:\\sql"; ◼ File file = new File(path); ◼ for(String s:file.list()) ◼ System.out.println(s); ◼ } ◼}