JAVA文件,字节,字符,缓冲流,properties操作教程

File文件操作

package com;

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

public class FileDemo {

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

        File file = new File("D:\\a.txt");

        boolean newFile = file.createNewFile();//创建文件,成功返回true,存在返回false
        System.out.println(newFile);

        String name = file.getName();//获得文件名称
        System.out.println(name);

        System.out.println(file.isFile());//判断是否文件

        System.out.println(file.isDirectory());//判断是否文件夹

        System.out.println(file.delete());//删除文件

        File file1 = new File("D:\\aa\\bb\\cc");
        boolean mkdirs = file1.mkdirs();//创建文件夹

        File file2= new File("D:\\aa");
        File[] files3 = file2.listFiles();//返回File数组 ,注意:如果是文件名返回null,如果文件夹是空的返回0
        System.out.println(files3);//[Ljava.io.File;@6fb554cc

        //遍历文件
        for (File file4 : files3) {
            System.out.println(file4);
        }

        //递归删除D:\\aa文件夹
        deleteDir("D:\\aa");

    }


    //删除文件夹
    public static void deleteDir(String path){

        File file = new File(path);
        File[] files = file.listFiles();
        for (File file1 : files) {
            if(file1.isFile()){
                file1.delete();
            }else{
                deleteDir(String.valueOf(file1));
            }
        }
        file.delete();
    }
}

FileInputStream和FileOutputStream字节流操作

package com;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileInputStreamDemo {

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

        //创建文件
        File file = new File("D:\\x.txt");
        boolean newFile = file.createNewFile();

        //字节流写出操作
        FileOutputStream outputStream = new FileOutputStream("D:\\x.txt");
        byte[] bytes = new byte[]{'a','b','c','d'};
        outputStream.write(bytes);
        outputStream.close();

        //字节流读入操作
        FileInputStream inputStream = new FileInputStream("D:\\x.txt");

        //一次读一个字节
//        int res;
//        while ((res = inputStream.read())!=-1){
//
//            System.out.println((char)res);
//        }

        //一次读多个字节
        byte[] bytes1 = new byte[1024];
        int len;
        while ((len = inputStream.read(bytes1))!=-1){
            System.out.println(new String(bytes,0,len));
        }
        inputStream.close();

    }
}

BufferInputStream和BufferOutputStream字节缓冲流

package com;

import java.io.*;

public class BufferInputStreamDemo {

    public static void main(String[] args) throws IOException {
    
		 //文件拷贝操作

        BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\\rabbitmq-server-3.9.16-1.el7.noarch.rpm"));

        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("E:\\rabbitmq-server-3.9.16-1.el7.noarch.rpm"));

        byte[] bytes = new byte[1024];
        int len;

        while ((len = bufferedInputStream.read(bytes))!=-1){
            bufferedOutputStream.write(bytes,0,len);
        }

        bufferedInputStream.close();
        bufferedOutputStream.close();

    }
}

Filereader字符输入和FileWriter字符输出

package com;

import java.io.*;

public class FileReaderDemo {

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


        //字符输出
        FileWriter fileWriter = new FileWriter("D:\\x.txt");
        fileWriter.write("张三李四");
        fileWriter.close();


        //字符输入
        FileReader fileReader = new FileReader("D:\\x.txt");
        //一次读一个字符
//        int read;
//        while ( (read = fileReader.read())!=-1) {
//            System.out.println((char)read);
//        }

        char[] chars = new char[1024];
        int len ;
        while ((len = fileReader.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }

        fileReader.close();


    }
}

BufferedWriter字符缓冲流输出和BufferedReader字符缓冲流输入

package com;

import java.io.*;

public class BufferReaderDemo {

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

        //缓冲字符流输出
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\x.txt"));

        bufferedWriter.write("左鲁大师\r\n");
        bufferedWriter.write("左鲁大师1\r\n");
        bufferedWriter.write("左鲁大师2\r\n");

        bufferedWriter.flush();

        bufferedWriter.close();

        //缓冲字符流输入
        BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\x.txt"));

        //第一种读取方式
//        char[] chars = new char[1024];
//        int len;
//        while ((len = bufferedReader.read(chars))!=-1){
//            System.out.println(new String(chars,0,len));
//        }

        //第二种读取方式,一行一行读
        String line;
        while ((line = bufferedReader.readLine())!=null){

            System.out.println(line);
        }

        bufferedReader.close();

    }
}

Properties作为HashMap使用和特有方法

package com;

import java.io.IOException;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class PropertiesDemo {

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

        Properties properties = new Properties();
        //作为HashMap集合的基本使用
        properties.put("zs","张三");
        properties.put("ls","李四");
        properties.put("ww","王五");
        Set<Object> objects = properties.keySet();

        for (Object object : objects) {
            System.out.println("key:" + object + " value:"+properties.get(object));
        }

        System.out.println("---------------------");

        Set<Map.Entry<Object, Object>> entries = properties.entrySet();
        for (Map.Entry<Object, Object> entry : entries) {
            System.out.println("key:"+entry.getKey() +" value:" + entry.getValue());
        }

        //特有方法
        Properties properties1 =  new Properties();
        properties1.setProperty("aa","AA");
        properties1.setProperty("bb","BB");
        properties1.setProperty("cc","CC");
        properties1.setProperty("dd","DD");

        System.out.println(properties1.getProperty("aa"));
        System.out.println(properties1.getProperty("bb"));
        System.out.println(properties1.getProperty("cc"));
        System.out.println(properties1.getProperty("dd"));

        System.out.println("-----------------------");
        Set<String> keys = properties1.stringPropertyNames();
        for (String key : keys) {
            System.out.println(properties1.get(key));
        }

    }
}

缓冲流注意事项


缓冲区输出流带有一个数据缓冲区,缓冲区输出流默认调用write一般不会马上就把数据写出而是等数据缓冲区满了之后再自动一次性把缓冲区的数据写出,如果在关闭缓冲区输出流之前不手动flush一下缓冲区可能还会有数据残留在缓冲区中,这样子直接关闭输出流的话可能会造成被写出的数据或文件不完整。这个写得好。我就引用了兄弟的过来了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值