教材学习内容总结
主要内容:File类 文件字节输入、输出流 文件字符输入、输出流 缓冲流 随机流 数组流 数据流 对象流 序列化与对象克隆 使用Scanner解析文件 文件锁
java.io包(I/O流库)提供大量的流类。
输入流的指向称为它的源,程序通过输入流读取源中的数据。所有输入流都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类。
输出流的指向称为它的目的地,程序通过输出流把数据传送到目的地。所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。
File类
1.File类的对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。
2.构造方法:·File(String filename);//用此创建的文件被认为与当前程序在同一目录中
·File(String directoryPath,String filename);
·File(File dir,String filename);
(filename是文件名,dierctoryPath是文件的路径,dir为一个目录)
3.File类获取文件本身信息的方法
·public String getName() ---文件的名字
·public boolean canRead() ---是否可读
·public boolean canWrite() ---是否可被写入
·public boolean exists() ---是否存在
·public long length() ---文件的长度(单位是字节)
·public String getAbsolutePath() ---文件的绝对路径
·public String getParent() ---文件的父目录
·public boolean isFile() ---是否是普通文件
·public boolean isDirectory() ---是否是目录
·public boolean isHidden() ---是否是隐藏文件
·public long lastModified() ---最后修改时间
4.目录
创建目录:File对象调用方法public boolean mkdir(),创建成功返回true,否则返回false(如果该目录已经存在将返回false)
列出目录中的文件:·public String[] list() 字符串形式、全部
·public File [] listFiles() File对象形式、全部
·public String[] list(FilenameFilter obj) 字符串形式、指定类型
·public File [] listFiles(FilenameFilter obj) File对象形式、指定类型
File对象dirFile调用list方法时,需向该方法传递一个实现FilenameFilter接口的对象。执行时,参数obj不断回调接口方法accept(File dir,String name),其中参数dir为调用list的当前目录dirFile,参数name被实例化为dirFile目录中的一个文件名,当接口方法返回true时,list方法就将名字为name的文件存放到返回的数组中。
5.文件的创建与删除
·使用File类创建一个文件对象 eg:File file = new File("C:\\myletter","letter.txt");
·如果C:\myletter目录中没有letter.txt文件,文件对象file会调用方法 public boolean createNewFile(); 创建出这个文件。
·文件对象调用方法 public boolean delete(); 可以删除当前文件。
6.java.lang包中的Runtime类声明一个对象,然后用该类的getRuntime()静态方法创建这个对象。
eg:Runtime ec;
ec=Runtime.getRuntime();
然后ec可以调用exec(String command)方法打开本地机器上的可执行文件或执行一个操作。
文字字节输入流
1.使用输入流的4个基本步骤
a.设定输入流的源;
b.创建指向源的输入流;
c.让输入流读取源中的数据;
d.关闭输入流;
2.FileInputStream类(文件字节输入流)是InputStream类的子类。
3.创建指向文件的输入流: FileInputStream(String name) FileInputStream(File file) name和file指定的文件称为输入流的源。
在try-catch语句中的try部分创建输入流,在catch(捕获)部分检测并处理异常。
try{
FileInputStream in = new FileInputStream("hello.txt");
}
catch (IOException e){
System.out.println("File read error:"+e );
}
或
File f = new File("hello.txt");
try{
FileInputStream in = new FileInputStream(f);
}
catch(IOException e){
System.out.println("File read error:"+e);
}
4.字节输入流的read方法以字节为单位读取源中的数据。(只要不关闭流,每次调用read方法就顺序地读取其余的内容,直到源的末尾或流被关闭。)
in read()读取单个字节,返回字节值(0~255之间的一个整数),未读出就返回-1。
in read(byte b[])读取b.length个字节到字节数组b,返回实际读取字节数,到达文件末尾返回-1。
int read(byte b[],int off,int len)读取len个字节到字节数组b,返回实际读取字节数,到达文件末尾返回-1,参数off指定从字节数组的某个位子开始存放读取的数据。
5.关闭流:关闭方法close()。
文件字节输出流
1.使用输出流的4个基本步骤
a.给出输出流的目的地
b.创建指向目的地的输出流
c.让输出流把数据写入到目的地
d.关闭输出流
2.FileOutputStream类(文件字节输入流)是OutputStream类的子类。
3.创建指向文件的输入流:FileOutputStream(String name) FileOutputStream(File file) name和file指定的文件称为输出流的目的地。
在try-catch语句中的try部分创建输出流,在catch(捕获)部分检测并处理异常。
文字字符输入、输出流
Reader的子类创建的对象称为字符输入流,字符输入流按字符读取源中的数据。
Writer的子类创建的对象称为字符输出流。字符输出流按字符将数据写入输出流指向的目的地。
教材学习中的问题和解决过程
要学的内容比较多,短时间没办法全部吃透,还需要继续花时间学习。