java简单的文件读写工具类
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import javax.servlet.http.HttpServletResponse;
- /**
- * <p>文件操作工具类<p>
- * @version 1.0
- * @author li_hao
- * @date 2017年1月18日
- */
- @SuppressWarnings({"resource","unused"})
- public class FileUtils {
- /**
- * 获取windows/linux的项目根目录
- * @return
- */
- public static String getConTextPath(){
- String fileUrl = Thread.currentThread().getContextClassLoader().getResource("").getPath();
- if("usr".equals(fileUrl.substring(,))){
- fileUrl = (fileUrl.substring(,fileUrl.length()-));//linux
- }else{
- fileUrl = (fileUrl.substring(,fileUrl.length()-));//windows
- }
- return fileUrl;
- }
- /**
- * 字符串转数组
- * @param str 字符串
- * @param splitStr 分隔符
- * @return
- */
- public static String[] StringToArray(String str,String splitStr){
- String[] arrayStr = null;
- if(!"".equals(str) && str != null){
- if(str.indexOf(splitStr)!=-){
- arrayStr = str.split(splitStr);
- }else{
- arrayStr = new String[];
- arrayStr[] = str;
- }
- }
- return arrayStr;
- }
- /**
- * 读取文件
- *
- * @param Path
- * @return
- */
- public static String ReadFile(String Path) {
- BufferedReader reader = null;
- String laststr = "";
- try {
- FileInputStream fileInputStream = new FileInputStream(Path);
- InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
- reader = new BufferedReader(inputStreamReader);
- String tempString = null;
- while ((tempString = reader.readLine()) != null) {
- laststr += tempString;
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return laststr;
- }
- /**
- * 获取文件夹下所有文件的名称 + 模糊查询(当不需要模糊查询时,queryStr传空或null即可)
- * 1.当路径不存在时,map返回retType值为1
- * 2.当路径为文件路径时,map返回retType值为2,文件名fileName值为文件名
- * 3.当路径下有文件夹时,map返回retType值为3,文件名列表fileNameList,文件夹名列表folderNameList
- * @param folderPath 路径
- * @param queryStr 模糊查询字符串
- * @return
- */
- public static HashMap<String, Object> getFilesName(String folderPath , String queryStr) {
- HashMap<String, Object> map = new HashMap<>();
- List<String> fileNameList = new ArrayList<>();//文件名列表
- List<String> folderNameList = new ArrayList<>();//文件夹名列表
- File f = new File(folderPath);
- if (!f.exists()) { //路径不存在
- map.put("retType", "");
- }else{
- boolean flag = f.isDirectory();
- if(flag==false){ //路径为文件
- map.put("retType", "");
- map.put("fileName", f.getName());
- }else{ //路径为文件夹
- map.put("retType", "");
- File fa[] = f.listFiles();
- queryStr = queryStr==null ? "" : queryStr;//若queryStr传入为null,则替换为空(indexOf匹配值不能为null)
- for (int i = ; i < fa.length; i++) {
- File fs = fa[i];
- if(fs.getName().indexOf(queryStr)!=-){
- if (fs.isDirectory()) {
- folderNameList.add(fs.getName());
- } else {
- fileNameList.add(fs.getName());
- }
- }
- }
- map.put("fileNameList", fileNameList);
- map.put("folderNameList", folderNameList);
- }
- }
- return map;
- }
- /**
- * 以行为单位读取文件,读取到最后一行
- * @param filePath
- * @return
- */
- public static List<String> readFileContent(String filePath) {
- BufferedReader reader = null;
- List<String> listContent = new ArrayList<>();
- try {
- reader = new BufferedReader(new FileReader(filePath));
- String tempString = null;
- int line = ;
- // 一次读入一行,直到读入null为文件结束
- while ((tempString = reader.readLine()) != null) {
- listContent.add(tempString);
- line++;
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e1) {
- }
- }
- }
- return listContent;
- }
- /**
- * 读取指定行数据 ,注意:0为开始行
- * @param filePath
- * @param lineNumber
- * @return
- */
- public static String readLineContent(String filePath,int lineNumber){
- BufferedReader reader = null;
- String lineContent="";
- try {
- reader = new BufferedReader(new FileReader(filePath));
- int line=;
- while(line<=lineNumber){
- lineContent=reader.readLine();
- line++;
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e1) {
- }
- }
- }
- return lineContent;
- }
- /**
- * 读取从beginLine到endLine数据(包含beginLine和endLine),注意:0为开始行
- * @param filePath
- * @param beginLineNumber 开始行
- * @param endLineNumber 结束行
- * @return
- */
- public static List<String> readLinesContent(String filePath,int beginLineNumber,int endLineNumber){
- List<String> listContent = new ArrayList<>();
- try{
- int count = ;
- BufferedReader reader = new BufferedReader(new FileReader(filePath));
- String content = reader.readLine();
- while(content !=null){
- if(count >= beginLineNumber && count <=endLineNumber){
- listContent.add(content);
- }
- content = reader.readLine();
- count++;
- }
- } catch(Exception e){
- }
- return listContent;
- }
- /**
- * 读取若干文件中所有数据
- * @param listFilePath
- * @return
- */
- public static List<String> readFileContent_list(List<String> listFilePath) {
- List<String> listContent = new ArrayList<>();
- for(String filePath : listFilePath){
- File file = new File(filePath);
- BufferedReader reader = null;
- try {
- reader = new BufferedReader(new FileReader(file));
- String tempString = null;
- int line = ;
- // 一次读入一行,直到读入null为文件结束
- while ((tempString = reader.readLine()) != null) {
- listContent.add(tempString);
- line++;
- }
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e1) {
- }
- }
- }
- }
- return listContent;
- }
- /**
- * 文件数据写入(如果文件夹和文件不存在,则先创建,再写入)
- * @param filePath
- * @param content
- * @param flag true:如果文件存在且存在内容,则内容换行追加;false:如果文件存在且存在内容,则内容替换
- */
- public static String fileLinesWrite(String filePath,String content,boolean flag){
- String filedo = "write";
- FileWriter fw = null;
- try {
- File file=new File(filePath);
- //如果文件夹不存在,则创建文件夹
- if (!file.getParentFile().exists()){
- file.getParentFile().mkdirs();
- }
- if(!file.exists()){//如果文件不存在,则创建文件,写入第一行内容
- file.createNewFile();
- fw = new FileWriter(file);
- filedo = "create";
- }else{//如果文件存在,则追加或替换内容
- fw = new FileWriter(file, flag);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- PrintWriter pw = new PrintWriter(fw);
- pw.println(content);
- pw.flush();
- try {
- fw.flush();
- pw.close();
- fw.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return filedo;
- }
- /**
- * 写文件
- * @param ins
- * @param out
- */
- public static void writeIntoOut(InputStream ins, OutputStream out) {
- byte[] bb = new byte[ * ];
- try {
- int cnt = ins.read(bb);
- while (cnt > ) {
- out.write(bb, , cnt);
- cnt = ins.read(bb);
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- out.flush();
- ins.close();
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- /**
- * 判断list中元素是否完全相同(完全相同返回true,否则返回false)
- * @param list
- * @return
- */
- private static boolean hasSame(List<? extends Object> list){
- if(null == list)
- return false;
- return == new HashSet<Object>(list).size();
- }
- /**
- * 判断list中是否有重复元素(无重复返回true,否则返回false)
- * @param list
- * @return
- */
- private static boolean hasSame2(List<? extends Object> list){
- if(null == list)
- return false;
- return list.size() == new HashSet<Object>(list).size();
- }
- /**
- * 增加/减少天数
- * @param date
- * @param num
- * @return
- */
- public static Date DateAddOrSub(Date date, int num) {
- Calendar startDT = Calendar.getInstance();
- startDT.setTime(date);
- startDT.add(Calendar.DAY_OF_MONTH, num);
- return startDT.getTime();
- }
- }
java简单的文件读写工具类的更多相关文章
- properties文件读写工具类
java代码: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; ...
- Spring-Boot ☞ ShapeFile文件读写工具类+接口调用
一.项目目录结构树 二.项目启动 三.往指定的shp文件里写内容 (1) json数据[Post] { "name":"test", "path&qu ...
- android 文件读写工具类
将可以序列化的对象通过base64编码后进行保存 但是感觉多数情况下,不需要采用这个功能,直接保存原始的json字符串,取出来之后再进行解析即可 package com.wotlab.home.mon ...
- list集合、txt文件对比的工具类和文件读写工具类
工作上经常会遇到处理大数据的问题,下面两个工具类,是在处理大数据时编写的:推荐的是使用map的方式处理两个list数据,如果遇到list相当大数据这个方法就起到了作用,当时处理了两个十万级的list, ...
- java文件读写工具类
依赖jar:commons-io.jar 1.写文件 // by FileUtilsList<String> lines = FileUtils.readLines(file, " ...
- Java操作属性文件之工具类
最近空闲时间整理一下平时常用的一下工具类,重复造轮子实在是浪费时间,如果不正确或者有待改善的地方,欢迎指教... package com.hsuchan.business.utils; import ...
- properties文件读写工具类PropertiesUtil.java
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- java IO Nio 文件拷贝工具类Files
public static void main(String[] args) throws Exception { Files.copy(Paths.get("file/text.txt&q ...
- 文件类型工具类:FileTypeUtil
个人学习,仅供参考! package com.example.administrator.filemanager.utils;import java.io.File;/** * 文件类型工具类 * * ...
随机推荐
- jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...
- 第二节《Git暂存区》
在上一节中我们的demo版本库经历了一次提交,我们可以使用git og --stat查看一下提交日志. [root@git demo]# git log --statcommit 986a1bd458 ...
- jQuery基础(二)DOM
DOM节点的创建 jQuery节点创建与属性的处理 创建元素节点: $("<div></div>") 创建为文本节点: $("<div> ...
- Fabric的@runs_once的理解
1:runs_once的用法,一直没理解,我看网上都是说:“函数修饰符,标识的函数只会执行一次,不受多台主机影响” 实在没理解,然后看了一下官方文档,这样解释 举个例子: #!/usr ...
- lua tasklib 之lumen 分析
sched.sleep分析 sleep会填充M.running_task.waitds数据表示当前task需要等待,最后yield出去到主线程 M.sleep = function (timeout) ...
- Java 的 volatile 修饰符
volatile 修饰符,用于多线程同步 volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值.而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存.这 ...
- 对数据进行GZIP压缩或解压缩
/** * 对data进行GZIP解压缩 * @param data * @return * @throws Exception */ public static String unCompress( ...
- Linux scp命令详解
Linux scp命令 Linux scp命令用于Linux之间复制文件和目录. scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令. 语法: ...
- 在内存中加载DLL
有个需求是把一个DLL作为数据打包到EXE中,运行的时候动态加载.但要求不是释放出来生成DLL文件加载. 花了一天时间做出来.效果还可以. 不过由于是直接分配内存加载DLL的.有一些小缺陷.例如遍历进 ...
- read()、write()返回 Input/output error, Device or resource busy解决
遇到的问题,通过I2C总线读.写(read.write)fs8816加密芯片,报错如下: read str failed,error= Input/output error! write str fa ...