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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python基础语法记录

    python基础语法记录1 代码中包含中文 就需要在头部指定编码 Python3 源码文件默认使用 utf 8 编码 所以可以正常解析中文 无需指定 UTF 8 编码 注意 如果你使用编辑器 同时需要设置 py 文件存储的格式为 UTF 8 coding utf 8 coding UTF 8 2 实例缩进为四个空格如输入 table 键或非四空格报错 IndentationE unindentdoes

    2025年9月7日
    3
  • android studio飞机大战游戏带注释源码教程(多线程)[通俗易懂]

    android studio飞机大战游戏带注释源码教程(多线程)[通俗易懂]第一次发博客,学了3天的androidstudio还有一点以前的java基础做了个飞机大战的游戏游戏比较简单大概就这几个功能1.会动的背景2.我的飞机3.发射子弹3.敌人飞机第一步新建一个项目我用的是Android4.4版本新建好项目之后xml文件之类的什么都不用管先新建个类叫做huahua.javapackagecom.dahuijii.liziguo;importandroid.c…

    2022年4月29日
    330
  • Java分布式事务

    Java分布式事务分布式事务介绍事务拥有以下四个特性,习惯上被称为ACID特性:

    2022年6月14日
    32
  • 【Python实践-1】求一元二次方程的两个解[通俗易懂]

    【Python实践-1】求一元二次方程的两个解[通俗易懂]知识点:importsys,sys模块包含了与Python解释器和它的环境有关的函数。“sys”是“system”的缩写。sys.exit()中途退出程序,(注:0是正常退出,其他为不正常

    2022年7月5日
    24
  • vim 搜索命令_linux vim编辑器

    vim 搜索命令_linux vim编辑器VIM查找命令VIM命令功能f向前搜索并将光标停留在目标字符上F向后搜索并将光标停留在目标字符上;重复刚才的查找,反向重复刚才的查找t向前搜索并将光标停留在目标字符的前一个字符上T向后搜索并将光标停留在目标字符的后一个字

    2022年9月23日
    4
  • conda 源_conda国内镜像源

    conda 源_conda国内镜像源查看所有环境:condainfo-e查询当前环境包列表:condalist创建虚拟环境:condacreate–nameDLpython=3.7此处遇到报错,原因是需要把三个环境变量添加完全channels:-http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/-http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/-http:/

    2022年10月1日
    6

发表回复

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

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