Day0302____FileUtils

 

导入jar包

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

原始代码

package com_01_testfan_01_basic;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;

import org.apache.commons.io.FileUtils;

public class Day0302_FileUtil {
    
    public static void main(String[] args) throws Exception {
        fileTest();
        fileStream();
        fileReader();
        
        fileUtilsTest();
    }
    
    private static void fileUtilsTest() throws IOException {
        String str=FileUtils.readFileToString(new File("D:\db1.csv"),"utf8");
        System.out.println(str);
        
//        System.out.println(" 分割符 ---------------");
//        Charset charset =Charset.forName("utf8");
//        List<String> lines=FileUtils.readLines(new File("D:\db1.csv"), charset);
//        for (String string : lines) {
//            System.out.println(string);
//        }
//        FileUtils.write(new File("D:\db1.csv"), "12121212
",charset,true);
//        
        
    }
    
    private static void fileTest() throws Exception {
        //System.getProperty("user.dir") 工程当前目录
//        System.out.println(System.getProperty("user.dir"));
//        String path =System.getProperty("user.dir")+File.separator+"data"+File.separator+"test";
//        new File(path).mkdirs();
//         FileOutputStream fos=new FileOutputStream(path+File.separator+"1.txt");
        
        //FileUtils.write(new File("db1.csv"), "12121212
",charset,true);
    }
    // 走读开发代码需要
    // 通过字节流文件读写 FileOutputStream  FileInputStream
    public static void fileStream() throws Exception{
        
        String path ="1.txt";
        FileOutputStream fos=new FileOutputStream(path, true);
        String str="这是一个测试文档
";
        fos.write(str.getBytes());//将字符串转成字节数组
        fos.close();
        
        FileInputStream fileInputStream = new FileInputStream(path);   
        byte[] buf = new byte[1024];  
        int length = 0;
        //循环读取文件内容,输入流中将最多buf.length个字节的数据读入一个buf数组中,返回类型是读取到的字节数。
        //当文件读取到结尾时返回 -1,循环结束。
        while((length = fileInputStream.read(buf)) != -1){   
           System.out.print(new String(buf,0,length));
        }
        //最后记得,关闭流
        fileInputStream.close();
    }
    
    //通过字符流 1 个汉字 2个字节编码
    //FileReader FileWriter
    public static void fileReader() throws Exception{
       String path="2.txt";
       //通过字符流的方式写入文件FileWrite
       FileWriter fw=new FileWriter(path, true);
       String str2="这是第二个测试文档
";
       fw.write(str2);
       fw.close(); //如果不使用close,则创建的文件没有内容,因此在写入后要及时关闭
       
       FileReader fr=new FileReader(path);
       char chars[]=new char[512];  //每次最多读1kb
       int temp=0;
       while((temp=fr.read(chars))!=-1){
           System.out.println(new String(chars,0,temp));
       }
       fr.close();
    }

}
 

FileUtils工具代码使用

package com_01_testfan_01_basic;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;

import org.apache.commons.io.FileUtils;

public class Day0302_FileUtil_工具类 {
    
    public static void main(String[] args) throws Exception {
        //fileTest();
        //fileStream();
        //fileReader();
        
        fileUtilsTest();
    }
    
    private static void fileUtilsTest() throws IOException {
        String str=FileUtils.readFileToString(new File("db1.csv"),"utf8");
        System.out.println(str);
        System.out.println(" 分割符 ---------------");
        Charset charset =Charset.forName("utf8");
        List<String> lines=FileUtils.readLines(new File("db1.csv"), charset);
        for (String string : lines) {
            System.out.println(string);
        }
        FileUtils.write(new File("db1.csv"), "12121212
",charset,true);
    }
    


}
原文地址:https://www.cnblogs.com/wujianbo123/p/11072231.html