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();
    }
}
相关推荐
2601_949146537 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧7 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX7 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb01038 小时前
C++课后习题训练记录Day98
开发语言·c++
爬山算法8 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7258 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎8 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄8 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
YUJIANYUE9 小时前
PHP纹路验证码
开发语言·php
忆~遂愿9 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能