java: file


/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述:
 * IDE:IntelliJ IDEA 2021.2.3
 * 数据库:MSSQL Server 2019
 * OS:windows 10 x64
 * 历史版本: JDK 14.02
 * 2022-1-12 创建者 geovindu
 * 2022-1-15 添加 Lambda
 * 2022-1-15 修改:date
 * 接口类 mssql-jdbc-9.4.1.jre16.jar.
 *
 * 2022-1-15 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc FileHelper.java

 * */



package Geovin.Common;

import Geovin.Model.Person;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.*;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CountDownLatch;


/**
 *
 *
 *
 * */
public class FileHelper {

    /**
     * 读取文件流
     * @param fileName 文件
     * @return
     * */
    public BufferedReader bufferreader(String fileName) {
        BufferedReader reader = null; //使用缓冲区的方法将数据读入到缓冲区中
        try {
            reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return reader;
    }
    /**
     * 读取文件中的某一行数据
     * @param reader
     * @param lineNumber
     * @return  string
     * */
    public String readfile(BufferedReader reader, int lineNumber) {
        String line = null; //定义行数
        try {
            int num = 0;
            while (true) {
                num++;
                line = reader.readLine();
                if (num == lineNumber) {
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return line;
        }

    }
   
    /**
     *
     *
     *
     * */
    public BigInteger getsize(String size){
        //System.out.println(size.substring(0,size.length()-1));
        int x=Integer.valueOf(size.substring(0,size.length()-1));

        BigInteger resultlen=new BigInteger("0");
        if(size.endsWith("m")||size.endsWith("M")) {
            resultlen = BigInteger.valueOf(x).multiply(BigInteger.valueOf(1024)).multiply(BigInteger.valueOf(1024));
        }else if(size.endsWith("g")||size.endsWith("G")){
            resultlen = BigInteger.valueOf(x).multiply(BigInteger.valueOf(1024)).multiply(BigInteger.valueOf(1024)).multiply(BigInteger.valueOf(1024));
        }else if(size.endsWith("K")||size.endsWith("k")){
            resultlen = BigInteger.valueOf(x).multiply(BigInteger.valueOf(1024));
        }
        return resultlen;
    }

    public synchronized static int  getuuid()
    {
        tmp=tmp+1;

        return tmp;
    }
   

    /**
     * 写数据
     * @param fw
     * @param size
     * @param list
     * @return
     *
     * */
    public boolean DuWriteFile(FileWriter fw, int size, List list) {
        DecimalFormat count=new DecimalFormat("00000000000");
        //经过测试:ufferedOutputStream执行耗时:1,1,1 毫秒
        int tmp_len=0;
        long begin0 = System.currentTimeMillis();
        try {

            String uuid=null;
            String uuid2=null;
            MessageDigest  md =MessageDigest.getInstance("MD5");
            LocalDate localdate=LocalDate.now();
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
            String date=localdate.format(formatter);
            Random rd=new Random();
            int z=0;

            for(int i=0;i

  How to Read and Write Text File in Java (codejava.net)

https://www.codejava.net/java-se/file-io/how-to-read-and-write-text-file-in-java

   /**
     *http://commons.apache.org/io/
     * You could use the Apache Commons IO library, which gives you FileUtils:     
     * FileUtils.writeStringToFile(file, stringBuilder.toString(), Charset.forName("UTF-8"))
     * @param stringBuffer 
     * @param file 
     * @return 
     * */
    public boolean DuBuWriteFile(StringBuffer stringBuffer,File file)
    {
       boolean isok=false;
        try {
            FileUtils.writeStringToFile(file, stringBuffer.toString(), Charset.forName("UTF-8"));
            isok=true;
           }
        catch (Exception exception)
        {
            exception.printStackTrace();
        }

        return  isok;
    }
    /**
     *https://github.com/google/guava
     * Files.write(stringBuilder, file, Charsets.UTF_8)
     * @param stringBuffer 
     * @param file 
     * @return 
     * */
    public boolean DuGoogleWriteFile(StringBuffer stringBuffer,File file)
    {
        boolean isok=false;
        try {
           com.google.common.io.Files.write(stringBuffer.toString(),file, Charsets.UTF_8);
            isok=true;
        }
        catch (Exception exception)
        {
            exception.printStackTrace();
        }

        return  isok;
    }