根据客户名-项目名-附件 这种形式创建文件夹存立面 进行判断有同名的文件后面+1 2 ...
1条回答 默认 最新
- 猫猫爱吃鱼 2022-01-20 12:14关注
import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.LinkedHashMap; import java.util.Map; public class Main01 { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://<MySQL服务器ip地址>/<数据库名>"; private static final String USER = "<用户名>"; private static final String PASS = "<用户密码>"; private static final String QUERY_SQL = "select * from company"; private static final File BASE_DIR = new File("<你要保存的目录路径>"); public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Class.forName(DRIVER); Connection conn = DriverManager.getConnection(URL, USER, PASS); Map<String, Integer> fileNameMap = new LinkedHashMap<String, Integer>(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(QUERY_SQL); String orgFileName = null; String fileName = null; int idx = 0; File file = null; InputStream is = null; OutputStream os = null; final int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int readCount = 0; while (rs.next()) { orgFileName = rs.getString("file_name"); fileName = String.format("%s-%s-%s", rs.getString("COMPANY_NAME"), rs.getString("branch_name"), orgFileName); if (!fileNameMap.containsKey(fileName)) { fileNameMap.put(fileName, 0); } else { idx = fileNameMap.get(fileName) + 1; fileNameMap.put(fileName, idx); } idx = fileNameMap.get(fileName); if (idx > 0) { int index = fileName.lastIndexOf("."); String ext = fileName.substring(index + 1); fileName = String.format("%s(%d).%s", fileName.substring(0, index), idx, ext); } file = new File(BASE_DIR, fileName); is = rs.getBinaryStream("doc_binary"); os = new FileOutputStream(file); while ((readCount = is.read(buffer, 0, bufferSize)) > 0) { os.write(buffer, 0, readCount); os.flush(); } os.close(); is.close(); } rs.close(); stmt.close(); conn.close(); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 vmware exsi重置后的密码
- ¥15 易盾点选的cb参数怎么解啊
- ¥15 MATLAB运行显示错误,如何解决?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?
- ¥15 电磁场的matlab仿真
- ¥15 mars2d在vue3中的引入问题
- ¥50 h5唤醒支付宝并跳转至向小荷包转账界面