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();
        }

    }
}

}

发布了37 篇原创文章 · 获赞 53 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_40861561/article/details/80034911