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();
    }
}
相关推荐
GIS数据转换器1 分钟前
基于CIM的城市智慧供热监管服务平台
java·大数据·开发语言·人工智能·后端·物联网·struts
weixin_4173968316 分钟前
星级酒店境外电视频道怎么合法接入?合规要点与核对清单
开发语言·前端·php·1024程序员节·综合布线
熊猫钓鱼>_>30 分钟前
鸿蒙PC构建实战:hvigor modelVersion 降级 + schema 清理 + ArkTS 编译三连坑完整复盘
开发语言·华为·ai编程·harmonyos·openharmony·数据·ai生成
m0_6399069435 分钟前
SpringBoot自动配置原理
java·spring boot·后端
FRing0344 分钟前
JavaScript入门到精通三十一(原型继承、原型链)
开发语言·前端·javascript
1024奇点1 小时前
【仓颉语言入门 · 第二篇 第 12 课】
开发语言·数据库·ide·mysql·开源
LDR0061 小时前
LDR6100 智能遥控器精品软文:Type-C 充电口与低功耗量产维护
c语言·开发语言
海鸥-w1 小时前
数据库冗余字段设计笔记
java·数据库·笔记·oracle
工具派1 小时前
PDF签名贴上去为什么发虚?尺寸、DPI与坐标的边界实测
java·python·pdf
iCxhust1 小时前
MATLAB SPWM仿真
开发语言·matlab