Java的IO流

一、File类

访问文件方法

1.String getName():返回此file对象所表示的文件名

2.String getPath():返回此对象多对应的路径名

3.File getAbsoluteFile():返回File对象的绝对路劲

4.String getAbsolutepath:返回File对象所对应的绝对路劲

5.String getParent():返回此File对象所对应目录的父目录

6.boolean renameTo(File newName)重命名

文件检测方法

1.boolean exists():判断File对象所对应的文件或目录是否存在

2.boolean canWrite():判断File对象所对应的文件和目录是否可写

3.boolean canRead():判断File对象所对应的文件和目录是否可读

4.boolean isFile():判断File对象所对应的是否是文件而不是目录

5.boolean isDirectory():判断File对象所对应的是目录而不是文件

获取文件信息

long lastModified():返回文件的最后修改时间

long length():返回文件内容的长度

文件操作的相关方法

1.boolean createNewFile():当此File对象所对应的文件不存在时,该方法将创建一个该File对象所指定的新文件

2.boolean delete():删除File对象所对应的文件或路劲

3.static File createTempFile(String prefix,String suffix):在默认的临时文件中创建一个临时的空文件

4.static File createTempFile(String prefix,String suffix,File directory):在directory所指定的目录中创建一个临时的空文件夹

5.void deleteOnExit():当Java虚拟机退出时,删除File对象所创建的文件和目录

目录操作方法

boolean mkdir():视图创建一个File对象所对应的目录

String[] list():列出File对象的所有文件名和路径名,返回String数组

File[] listFile():列出File对象的所有子文件和路径返回File数组

static File[] listRoots():列出系统所有的跟路劲

package day09;

import java.io.File;
import java.io.IOException;

//File类
public class Test {
    public static void main(String[] args) throws IOException {
        //与当前为路劲创建一个File文件
        File file = new File(".");
        System.out.println(file.getName());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getParent());
        System.out.println(file.getAbsoluteFile().getParent());
        //在当前路劲下创建一个临时的文件
        File tempFile = file.createTempFile("aaaa", "bbbb", file);
        //指定JVM退出时删除该文件
        tempFile.deleteOnExit();
        //指定系统当前的时间作为文件名
        File newFile = new File(System.currentTimeMillis() + "");
        System.out.println("判断newFile是否存在:"+newFile.exists());//false
        //用指定的newFile对象创建一个文件
        boolean newFile1 = newFile.createNewFile();//创建成功返回true
        System.out.println(newFile1);
        //使用list()方法列出当前路劲下的所有的文件和路劲
        String[] list = file.list();
        System.out.println("=====当前路劲下所有的文件和路劲");
        for(String filename:list){
            System.out.println(filename);
        }
        //使用listRoot()方法列出所有的磁盘根路劲
        File[] files = File.listRoots();
        for(File filesRoot:files){
            System.out.println(filesRoot);
        }

    }
}
//创建文件和文件夹 
String input = "C:\\Users\\pfliu1\\Desktop\\aaa";
        File file = new File(input);
        if(file.isDirectory()){
            String[] list = file.list();
            for (int i = 0; i < list.length; i++) {
                File file1 = new File(input + "\\" + list[i]);
                if(file1.isDirectory()){
                    FileOutputStream fileOutputStream = new FileOutputStream(input + "\\" + list[i]+ "\\"+ "ddddd.txt");
                    fileOutputStream = new FileOutputStream(path);
            	    fileOutputStream.write("i love you".getBytes());
                    fileOutputStream.write("\r\n".getBytes());
                    fileOutputStream.write(97);
                    fileOutputStream.write("\r\n".getBytes());
                   OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
                   outputStreamWriter.append("今天时我联系你的第一天");
                   outputStreamWriter.append("\r\n");
                   outputStreamWriter.append("不要让我失望哦!!");
            outputStreamWriter.close();
                }else{
                    file1.delete();
                    //创建新的文件夹
                    File file2 = new File(input + "\\" + "BBBB");
                    //file2.mkdirs();//不友好
                    Path directory = Files.createDirectory(Paths.get(input + "\\" + "AAAA"));
                    System.out.println(directory);
                }
            }
        }

二、流的分类

1.输入流和输出流

输入流:从键盘读取数据,而不能写入数据,主要以InputStream,Reader作为基类

输出流:从键盘写入数据,而不能读取数据,主要以OutputStream,Writer作为基类

划分输入流和输出流的是从程序运行所在内存的角度出发的

分类 输入流 输出流
方式 读取数据 写入数据
基类 InputStream/Reader OutputStream/Writer

2.字节流和字符流

字节流:操作的数据单元是8位的字节,主要以InputStream,OutputStream作为基类

字符流:操作的数据单元是16位的字符,主要以Reader和Writer作为基类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值