io工具类

文章目录

以字符串的形式读取文件内容

java 复制代码
// import java.io.*;
public static String file2Str(File file, String encoder) {
	StringBuilder sb = new StringBuilder();
	BufferedReader in = null;
	try {
		in = new BufferedReader(
				new InputStreamReader(
						new FileInputStream(file),
						encoder
				)
		);
		String str = in.readLine();
		while (str != null) {
			sb.append(str);
			str = in.readLine();
		}
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (in != null) {
			try {
				in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	return sb.toString();
}

字符串写入文件

java 复制代码
// import java.io.*;
public static void str2File(File file, String data, String encoder) {
	BufferedWriter out = null;
	try {
		out = new BufferedWriter(
				new OutputStreamWriter(
						new FileOutputStream(file),
						encoder
				)
		);
		out.write(data);
		out.flush();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (out != null) {
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

读取文件成字节数组

java 复制代码
// import java.io.*;
public static byte[] file2Byte(File file) {
	byte[] data = null;
	FileInputStream in = null;
	try {
		in = new FileInputStream(file);
		data = new byte[in.available()];
		in.read(data);
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (in != null) {
			try {
				in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	return data;
}

将字节数组写入文件

java 复制代码
// import java.io.*;
public static void byte2File(File file, byte[] data) {
	FileOutputStream outputStream = null;
	try {
		outputStream = new FileOutputStream(file);
		outputStream.write(data);
		outputStream.close();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (outputStream != null) {
			try {
				outputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

按行读取文件成list

java 复制代码
// import java.io.*;
// import java.util.List;
public static List<String> file2List(File file, String encoder) {
	List<String> alline = new ArrayList<>();
	BufferedReader in = null;
	try {
		in = new BufferedReader(
				new InputStreamReader(new FileInputStream(file), encoder)
		);
		String str = in.readLine();
		while (str != null) {
			alline.add(str);
			str = in.readLine();
		}
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (in != null) {
			try {
				in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	return alline;
}

输出list到文件

java 复制代码
// import java.io.*;
// import java.util.List;
public static void list2File(File file, List<String> data, String encoder) {
	BufferedWriter out = null;
	try {
		out = new BufferedWriter(
				new OutputStreamWriter(new FileOutputStream(file), encoder)
		);
		for (String str : data) {
			out.write(str);
			out.newLine();
		}
		out.flush();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (out != null) {
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

从标准输入中读入

java 复制代码
// import java.io.*;
public static String system2Str() throws IOException {
    BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    return stdin.readLine();
}

文件转换为base64

java 复制代码
// import java.io.*;
public static byte[] getBase64(File file) {
    FileInputStream fileInputStream = null;
    byte[] bytes = null;
    try {
        fileInputStream = new FileInputStream(file);
        bytes = new byte[fileInputStream.available()];
        fileInputStream.read(bytes);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (fileInputStream != null) {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return bytes;
}

文件压缩

java 复制代码
//import java.io.*;
//import java.util.zip.ZipEntry;
//import java.util.zip.ZipOutputStream;
/**
 * @param inputFilePath C:\Users\26294\Desktop\bb
 * @param zipFileName C:\Users\26294\Desktop\test.zip
 * @throws Exception
 */
public static void zip(String inputFilePath, String zipFileName)
        throws Exception {
    File srcFile = new File(inputFilePath);
    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
    if (srcFile.isDirectory()) {
        zip(out, srcFile, "");
    } else {
        zip(out, srcFile, srcFile.getName());
    }
    out.close();
}

private static void zip(ZipOutputStream out, File srcFile, String base)
        throws Exception {
    if (srcFile.isDirectory()) {
        File[] files = srcFile.listFiles();
        if (!"".equals(base)) {
            out.putNextEntry(new ZipEntry(base + "/"));
            base = base + "/";
        }
        for (File file : files) {
            System.out.println(file.getAbsolutePath());
            zip(out, file, base + file.getName());
        }
    } else {
        out.putNextEntry(new ZipEntry(base));
        FileInputStream inputStream = new FileInputStream(srcFile);
        int b;
        while ((b = inputStream.read()) != -1) {
            out.write(b);
        }
        inputStream.close();
    }
}
相关推荐
郝学胜-神的一滴43 分钟前
Python 高级编程 026:内置数据结构之骈文纵论
开发语言·数据结构·python·程序人生·软件工程
隐积8 小时前
3.1.7.Qt容器大家族(3):QVariant——万能盒子
开发语言·qt
都叫我大帅哥11 小时前
Java JJWT 完全指南:从入门到生产级实践
java
名字还没想好☜11 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
初级代码游戏12 小时前
iOS开发 Swift 速记1:变量和基本数据类型
开发语言·ios·swift
前端开发张小七12 小时前
Java 学习笔记 · 第一课:基础语法与核心概念
java·后端
酷在前行13 小时前
【R生态】PERMANOVA 进阶实战:距离选择、PERMDISP、两两比较与受限置换(保姆级教程)
开发语言·r语言
ThsPool13 小时前
【ENVI二次开发学习整理 04】ENVI功能扩展与二次开发
java·前端·javascript
cxr82813 小时前
Graphify vs GitNexus vs CodeGraph — 三工具架构深度对比
开发语言·架构·知识图谱
赤壁小虾13 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库