欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaIO流(一)

程序员文章站 2022-07-12 20:57:57
...

javaIO流(一)

按照数据流的方向不同可以分为:输入流和输出流。
按照处理数据单位不同可以分为:字节流和字符流。
按照功能不同可以分为:节点流和处理流。
File类的常用方法
java.io.File 类是专门对文件进行操作的类。(只能对文件本身进行操作,不能对文件内容操作)
访问File对象所表示的文件或路径的属性:
public boolean canRead() //是否可读
public boolean canWrite() //是否可写
public boolean exists() //文件是否存在
public boolean isDirectory() //是不是目录/路径
public boolean isFile() //是否是文件
public boolean isHidden() //是否是隐藏的
public long lastModified() //最后修改时间
public long length() //以字节为单位(文件长度)
public String getName() //获取文件名称
public String getPath() //创建File对象时,使用什么路径就返回什么路径:是相对就返回相对,是绝对就返回绝对
public String getAbsolutePath() //返回此File对象的绝对路径名
public File getAbsoluteFile()
public String getParent()获取父目录
对文件的操作:
public boolean createNewFile() //不存在时创建此文件对象所代表的空文件
public boolean delete()  //删除文件。如果是目录必须是空才能删除
public boolean mkdir()   //创建此抽象路径名指定的目录
public boolean mkdirs()  //创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
public boolean renameTo(File dest) //重新命名此抽象路径名表示的文件浏览目录中的文件和子目录
public String[] list() //返回此目录中的文件名和目录名的数组
public File[] listFiles() //返回此目录中的文件和目录的File实例数组
public File[] listFiles(FilenameFilter filter) //返回此目录中满足指定过滤器的文件和目录
java.io.FilenameFilter接口:实现此接口的类实例可用于过滤文件名

import java.io.*;

public class TestIO {
public static void main(String[] args) {
BufferedReader fr = null;//初始为空
BufferedWriter bw = null;//初始为空
String str =”“;
//public File(String pathname)以pathname为路径创建File对象;
//如果pathname是相对路径,则是相对于Java的系统属性user.dir中的路径
// File fdir = new File(“D:\a\b\c\test.txt”);
File fdir = new File(“D:/a/b/c/test.txt”);
//建立对象输出流准备向文件中写入对象
//存储了当前系统的名称分隔符。在 UNIX 和Mac系统上,此字段的值为 ‘/’;
//在 Windows 系统上,它为 ‘\’。为了程序的跨平台特性,文件的路径应该用这个属性值来代表
if (!fdir.exists()) {
//检测结果文件是否存在如果不存在便创建一个
fdir.mkdirs();
}
File f = new File(fdir,”test.txt”);
try {
if (!f.exists()) {
f.createNewFile();
}
} catch (IOException e) {
e.printStackTrace();
}
//对eclipse创建的java工程来说,就是该工程的根目录。
File f1 = new File(“D:\2345下载\新建文件夹\eclipse\Class1\src\TestIO.java”);
try {
if (!f1.exists()) {
//检测结果文件是否存在如果不存在便创建一个
f1.createNewFile();
}
} catch (IOException e1) {

    e1.printStackTrace();
}

  try {
    fr = new BufferedReader(new FileReader(f1));
       //设置字符读入流用于向文件(file)中读数据
    bw = new BufferedWriter(new FileWriter(f));
       //设置字符读出流用于向文件(file2)中写数据
    while ((str = fr.readLine()) != null) {
         //将容器里的东西写入到新文件中   
    bw.write(str,0,str.length());
      //将容器里的东西添加到bw中,用于输出
    bw.newLine();
    System.out.println(str);
    }
    System.out.println("完成");
} catch (Exception e1) {
    e1.printStackTrace();
}finally{
    //注意:对于缓冲输出流,写出的数据会先缓存在内存缓冲区中,关闭此流前要用flush()方法将缓存区的数据立刻写出。
    //关闭处理流时,会自动关闭处理流所包装的所有底层流
        try {
            bw.flush();//刷新该流的缓冲
            bw.close();//关闭输入流,但要先刷新它
            fr.close();//关闭输出流,但要先刷新它
        } catch (IOException e1) {

            e1.printStackTrace();
        }

    }
}

}

相关标签: javaIO流(一)