IO

File

1.创建File

  • new File(String pathname) //根据路径直接创建File对象(创建在内存中,调用createNewFile()才能在磁盘创建)
  • new File(File parent,String child) //根据父目录文件+子路径构建
  • new File(String parent,String child) //根据父目录+子路径构建
  • createNewFile 创建新的文件存在磁盘中

2.获取文件相关信息

  • getName :获取文件名称
  • getAbsolutePath:获取绝对路径
  • getParent:获取父亲文件
  • length:获取文件大小(字节)

3.目录操作和文件删除

  • mkdir:创建一级目录
  • mkdirs:创建多级目录
  • delete:删除空目录或文件

io

input:输入流,将文件输入到内存中(及读取文档到内存后并在屏幕显示)

output:输出流,将内存中信息存储到磁盘等设备中

1.FileInputStream(操作字节)

一个字符三个字节,所以读取字符时会出现乱码

1.fileInputStream.read():一次读取一个字节,效率低

 public void test01(){
        //文件路径
        String filePath = "g:\\new.txt";
        FileInputStream fileInputStream = null;
        //fileInputStream.read()返回值 读取一个返回int 没有返回-1
        int read = 0;
        try {
            //创建流去读取数据
            fileInputStream = new FileInputStream(filePath);
            while((read = fileInputStream.read()) != -1){
                System.out.print((char)read);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
//                关闭流
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

2.fileInputStream.read(bytes)一次读取多个字节

public void test02(){
        //文件路径
        String filePath = "g:\\new.txt";
        FileInputStream fileInputStream = null;
        byte[] bytes = new byte[8];
        int len;
        try {
            fileInputStream = new FileInputStream(filePath);
//            fileInputStream.read(bytes)返回值为读取到的字节数,没有则返回-1
            while((len = fileInputStream.read(bytes)) != -1){
                System.out.print(new String(bytes,0,len));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

2.FileOutputStream(操作字节)

文件写入内容

public void test01() throws IOException {
        String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\outputstream\\1.txt";
        //没有指定文件时会自动创建
//        每次都写入内容时都会覆盖原来的内容
//        FileOutputStream fileOutputStream = new FileOutputStream(filePath);
//        new FileOutputStream(filePath, true)会每次都在原先的文档中追加写入内容
        FileOutputStream fileOutputStream = new FileOutputStream(filePath, true);
//        fileOutputStream.write('h');
        String str = "123fwewrfew";
//        getBytes()会将String类型转化为byte数组
        fileOutputStream.write(str.getBytes());
  			fileOutputStream.close();
    }

3.FileReader(操作字符)

1.常用方法

1.fileReader.read()一次读取一个字符
public void test01() throws IOException {
        String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
        FileReader fileReader = new FileReader(filePath);
        int data = 0;
        while((data = fileReader.read()) != -1){
            System.out.print((char)data);
        }
        fileReader.close();
    }
2.fileReader.read(bytes)一次读取一个字符数组
public void test02() throws IOException {
        String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
        FileReader fileReader = new FileReader(filePath);
        int len = 0;
        char[] bytes = new char[1024];
        while((len = fileReader.read(bytes)) != -1){
            System.out.print(new String(bytes,0,len));
        }
        fileReader.close();
    }

4.FileWriter(操作字符)

FileWriter使用后,必须关闭流或者刷新流,否则写入不了文件中。close等价于flush+关闭流

5.BufferedReader(处理流)(操作字符)

    public static void main(String[] args) throws IOException {

        String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
        String line = null;
//        bufferedReader.readLine()读取一行,没有内容时返回为null
        while((line = bufferedReader.readLine()) != null){
            System.out.println(line);
        }
//        关闭流 bufferedReader.close底层还是关闭的FileReader
        bufferedReader.close();
    }

6.BufferedWriter(操作字符)

public static void main(String[] args) throws IOException {

        String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
//        开启追加写内容是在new FileReader(filePath)这个节点流
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
        String line = null;
//        bufferedReader.readLine()读取一行,没有内容时返回为null
        while((line = bufferedReader.readLine()) != null){
            System.out.println(line);
        }
//        关闭流 bufferedReader.close底层还是关闭的FileReader
        bufferedReader.close();
    }

7.Properties

posted @ 2022-02-21 10:28  九月!!  阅读(52)  评论(0)    收藏  举报