【java】常用到的一些获取文件内容的方法

2023-10-26

一.前奏准备,获取文件名,根据文件名获取路径

//文件路径名
    String path;

    public String getPath() {
        return path;
    }
    /**
     * 根据路径获取文件名
     * @return 文件名字符串
     */
    public String fileName() throws Exception {

        String paths = getPath();

        // 判空操作必须要有 , 处理方式不唯一 , 根据实际情况可选其一 。
        if(paths == null) {
            throw new Exception("路径不能为null"); // 处理方法一
        }

        int start=paths.lastIndexOf("/");
        int end=paths.lastIndexOf(".");
        if(start!=-1 && end!=-1){
            return paths.substring(start+1,end);//包含头不包含尾 , 故:头 + 1
        }else{
            return "";
        }
    }
//读取SD卡中文件的方法
    //定义读取文件的方法:
    public String readFromSD(String filename) throws IOException {
        StringBuilder sb = new StringBuilder("");
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            filename = Environment.getExternalStorageDirectory().getCanonicalPath() + "/" + filename;
            //打开文件输入流
            FileInputStream input = new FileInputStream(filename);
            byte[] temp = new byte[1024];

            int len = 0;
            //读取文件内容:
            while ((len = input.read(temp)) > 0) {
                sb.append(new String(temp, 0, len));
            }
            //关闭输入流
            input.close();
        }
        return sb.toString();
    }

二,根据路径获取文件内容(最常用的方法)

/* @Title: readFileContent
     * @Description: 读取文件内容
     * @param filePath
     * @return
             */
    public static String readFileContent(String filePath) {
        StringBuilder result = new StringBuilder();
        try {
//          BufferedReader bfr = new BufferedReader(new FileReader(new File(filePath)));
            BufferedReader bfr = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filePath)), "UTF-8"));
            String lineTxt = null;
            while ((lineTxt = bfr.readLine()) != null) {
                result.append(lineTxt).append("\n");
            }
            bfr.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result.toString();
    }
}

三.对于实体类要做一些定义,比如这里你用到的文件(后面的直接get和set自动生成)

public class FileEntity {
    Integer id;
    String title;
    String content;
    String time;
    String path;

    public FileEntity() {
    }

    public FileEntity(Integer id, String title, String content, String time, String path) {
        this.id = id;  //id
        this.title = title;  //标题
        this.content = content;  //内容
        this.time = time;   //最后更新时间
        this.path = path;   //文件内容
    }

    public Integer getId() {
        return id;
    }

    public FileEntity setId(Integer id) {
        this.id = id;
        return this;
    }

    public String getTitle() {
        return title;
    }

    public FileEntity setTitle(String title) {
        this.title = title;
        return this;
    }

    public String getContent() {
        return content;
    }

    public FileEntity setContent(String content) {
        this.content = content;
        return this;
    }

    public String getTime() {
        return time;
    }

    public FileEntity setTime(String time) {
        this.time = time;
        return this;
    }

    public String getPath() {
        return path;
    }

    public FileEntity setPath(String path) {
        this.path = path;
        return this;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【java】常用到的一些获取文件内容的方法 的相关文章

随机推荐

  • Java时间转换问题 [Failed to convert property value of type ‘java.lang.String‘ to required type ‘java.

    1 错误提示代码 default message Failed to convert property value of type java lang String to required type java 2 分析原因 遇到java接收
  • macOS 系统下安装Lua及lua-cjson

    macOS 系统下安装Lua及lua cjson lua安装及部署 具体操作步骤如下 curl R O http www lua org ftp lua 5 2 3 tar gz tar zxf lua 5 2 3 tar gz cd lu
  • 豆瓣读书top250数据爬取与可视化

    爬虫 scrapy 题目 根据豆瓣读书top250 根据出版社对书籍数量分类 绘制饼图 搭建环境 import scrapy import numpy as np import pandas as pd import matplotlib
  • UE5《Electric Dreams》项目PCG技术解析 之 PCGCustomNodes详解(三)SG_CopyPointsWithHierarchy

    继续解析 Electric Dreams 项目中的自定义节点和子图 SG CopyPointsWithHierarchy和PostCopyPoints OffsetIndices 文章目录 前导文章 标准组合拳 SG CopyPointsW
  • STM32开发中各库函数的主要作用和关系。

    STM32开发中各库函数的主要作用和关系 STM32各库函数关系的简单解析 您好 这是我第一次使用 CSDN来发布文章 如果有排版不合理 结构凌乱 欢迎私信我交流经验 文章内容如有错误 欢迎读者指正 首先我们了解一下什么是库函数 众所周知
  • 常见的几种开源协议

    在学习中经常能看到一些词 例如 GPL LGPL等等 自打上学那会就遇见过 对它们的具体含义却不了解 今天给它们总结一下 说到开源协议 不得不提GNU 课本上给的定义是 GNU is Not Unix 这是官方给出的递归定义 永远也找不到本
  • Linux基础服务3——samba

    文章目录 一 基本了解 1 1 服务安装 1 2 服务进程和端口 1 3 samba用户 1 4 配置文件 1 4 1 主配置文件 1 4 2 配置文件参数 1 5 安全级别 二 访问samba 2 1 参数测试 2 2 交互式访问 2 3
  • 多线程进阶学习10------AQS详解

    AbstractQueuedSynchronizer 来自于JDK1 5 位于JUC包 由并发编程大师Doug Lea编写 字面翻译就是 抽象队列同步器 简称为AQS AQS作为一个抽象类 是构建JUC包中的锁 比如ReentrantLoc
  • Netty工作原理最详细分析

    NIO通讯服务端步骤 1 创建ServerSocketChannel 为它配置非阻塞模式 2 绑定监听 配置TCP参数 录入backlog大小等 3 创建一个独立的IO线程 用于轮询多路复用器Selector 4 创建Selector 将之
  • 面试嵌入式工程师过程中的常见问题和回答

    1 请介绍一下你的嵌入式系统开发经验 an 首先 回答此类问题时应该尽可能地详细和具体 可以从以下方面介绍自己的嵌入式系统开发经验 1 开发环境和工具 介绍自己使用过哪些开发环境和工具 例如Keil IAR Eclipse等 可以说明自己对
  • Java之变量、标识符、保留字、变量

    文章目录 1 关键字与保留字 2 标识符 2 1 什么是标识符 Identifier 2 2 定义合法标识符规则 重要 2 3 Java 中的名称命名规范 3 变量 3 1 变量的声明与使用 3 2 基本数据类型 3 2 1 整数类型 by
  • Java---TCP通信

    目录 1 TCP通信 快速入门 编写客户端代码 步骤 客户端发送消息 总结 需求 服务端实现步骤 总结 2 TCP通信 多发多收消息 案例 使用TCP通信实现 多发多收消息 总结 3 TCP通信 同时接受多个客户端消息 重点 总结 4 TC
  • 简单解析transformer代码

    详解transformer代码 文章目录 详解transformer代码 1 代码下载 2 prepro py 2 1 首先进行语料预处理阶段 2 2 生成预处理过后的对应数据集 2 3 sentencepiece处理 3 data loa
  • 028-从零搭建微服务-搜索服务(二)

    写在最前 如果这个项目让你有所收获 记得 Star 关注哦 这对我是非常不错的鼓励与支持 源码地址 后端 https gitee com csps mingyue 源码地址 前端 https gitee com csps mingyue u
  • FISCO BCOS节点扩容和使用console进行群组扩容

    一 安装并启动FISCO BCOS 搭建单机单群组4节点的教程查看 https blog csdn net yueyue763184 article details 128924144 spm 1001 2014 3001 5501 二 下
  • 最小优先级队列 — 使用最小堆实现

    最小优先级支持的操作 1 INSERT S x 将元素x插入队列S 2 MINIMUM S 返回S中最小的元素 3 EXTRACT MIN S 去掉并返回S中最小的元素 4 DECREASE KEY S x key 将下标为x的元素值降低为
  • 获得代理ippython_python爬虫之抓取代理服务器IP

    前言 使用爬虫爬取网站的信息常常会遇到的问题是 你的爬虫行为被对方识别了 对方把你的IP屏蔽了 返回不了正常的数据给你 那么这时候就需要使用代理服务器IP来伪装你的请求了 免费代理服务器网站有 下面我们以西刺免费代理IP为例子看看是如何获取
  • ArcGISMapsSDK for UnrealEngine_AQ

    ArcGISMapsSDK for UnrealEngine AQ Prepare 1 ArcGIS Maps SDK for game engines 2 ArcGIS Maps SDK for Unreal Engine Beta 2
  • jQuery 的 DOM 操作- 中

    文章目录 jQuery 的 DOM 操作 中 复制节点 复制节点介绍 复制节点 应用实例 替换节点 替换节点介绍 替换节点 应用实例 属性操作 样式操作 样式操作介绍 应用实例 jQuery 的 DOM 操作 中 注意本篇和jQuery 的
  • 【java】常用到的一些获取文件内容的方法

    一 前奏准备 获取文件名 根据文件名获取路径 文件路径名 String path public String getPath return path 根据路径获取文件名 return 文件名字符串 public String fileNam