Java 读写文件工具类

Java 读写文件工具类今天简单写了一下读写文件用的工具类,方便后面开发或者测试时直接使用。importlombok.Cleanup;importjava.io.*;importjava.util.ArrayList;importjava.util.List;publicclassFileUtils{//逐行读取文件内容返回内容列表publicstaticList<String>readLine(Stringpath){List<Str

大家好,又见面了,我是你们的朋友全栈君。

今天简单写了一下读写文件用的工具类,方便后面开发或者测试时直接使用。

import lombok.Cleanup;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class FileUtils {

    //逐行读取文件内容返回内容列表
    public static List<String> readLine(String path){
        List<String> list = new ArrayList<>();
        try {
            //@Cleanup lombok用法 自动关闭IO
            @Cleanup BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
            String line = "";
            while ((line = reader.readLine()) != null){
                if (line.trim().length()>0){
                    list.add(line);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return list;
    }


    //读取文件内容并返回
    public static String readToString(String fileName){
        String encoding = "UTF-8";
        //new File对象
        File file = new File(fileName);
        //获取文件长度
        Long filelength = file.length();
        //获取同长度的字节数组
        byte[] filecontent = new byte[filelength.intValue()];
        FileInputStream in = null;
        try {
            in = new FileInputStream(file);
            in.read(filecontent);
            return new String(filecontent,encoding);
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }finally {
            try {
                in.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }

    }

    //向文件里写入内容
    public static void saveAsFileWriter(String path, String content){
        File file = new File(path);
        //如果目录不存在 创建目录
        try {
            if(!file.getParentFile().exists()){
                file.getParentFile().mkdirs();
            }
            file.createNewFile();
        }catch (IOException e){
            e.printStackTrace();
        }
        FileWriter fileWriter = null;
        try {
            // true表示不覆盖原来的内容,而是加到文件的后面。若要覆盖原来的内容,直接省略这个参数就好
            fileWriter = new FileWriter(path, false);
            fileWriter.write(content);
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                fileWriter.flush();
                fileWriter.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159357.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nagios安装与部署[通俗易懂]

    Nagios安装与部署[通俗易懂]Nagios概述:Nagios是一款开源免费(也有收费版的NagiosXI)的监控工具,可以用以监控Windows、Linux、Unix、Router、Switch,可以监控指定主机的物理基础资源

    2022年7月2日
    25
  • HikariPool 连接池问题

    HikariPool 连接池问题前言:今天在一个项目运行的时候发现一个很奇怪的问题,当我有一段时间无操作之后再进行操作的话,就会出现HikariPool相关的报错,在此记录一下问题2022-02-2013:14:04.178WARN4012—[nio-8888-exec-6]com.zaxxer.hikari.pool.PoolBase:HikariPool-1-Failedtovalidateconnectioncom.mysql.cj.jdbc.ConnectionImpl@.

    2022年6月23日
    32
  • Proteus仿真–51单片机最小系统

    Proteus仿真–51单片机最小系统1.单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。下面着重介绍时钟电路和复位电路。1)时钟电路单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。内部时钟方式的原理电路如图所示。在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值

    2022年6月23日
    27
  • 几种常见GC算法介绍「建议收藏」

    几种常见GC算法介绍「建议收藏」本文主要是对常用的GC算法(引用计数法、标记-清除法、复制算法、标记-清除算法)作出相关的说明,并对相关知识做简单的介绍。一、什么是堆?    堆指用于动态(即执行程序时)存放对象的内存空间。而这个对象,在面向对象的编程中,它指“具有属性和行为的事物”,然而在GC的世界中,对象表示的是“通过应用程序利用的数据的集合”。具体到Java堆,它是所有线程共享的一块内存区域,在虚拟机启动时创…

    2022年6月16日
    27
  • ckfinder的使用及了解config.xml的配置

    ckfinder的使用及了解config.xml的配置ckfinder的使用,根据官网向导(CKFinder_2.x/Developers_Guide)自己写的笔记1、将ckfinder_java_2.4.3\CKFinder-Java-2.4.3\ckfinder目录放到根目录下面,WEB-INF/lib中的jar文件全部放到项目中的lib下面2、将config.xml放到WEB-INF目录下面3、修改config.xml文件下的配置    &l…

    2025年7月4日
    2
  • FileInputStream的available方法

    FileInputStream的available方法available():返回与之关联的文件的字节数importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;publicclassFileInputStreamDemo2{ publicstaticvoidmain(String[]args)throwsIOE…

    2022年6月4日
    101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号