# mytool **Repository Path**: long1218/mytool ## Basic Information - **Project Name**: mytool - **Description**: 工具类 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2016-08-17 - **Last Updated**: 2023-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mytool [java文件](https://git.oschina.net/long1218/mytool/raw/master/src/test/java/site/immonkey/mytool/MyTest.java) ## 图像处理 ### thumbnailator ```java Thumbnails.of(TEST_DIRECTORY + "Desert.jpg") .size(100, 100) // 等比缩放 .outputFormat("jpg") .outputQuality(.5f) .toFile(TEST_DIRECTORY + "Desert1.jpg"); ``` ### ImageMagick, im4java ```java String imageMagickPath = "D:\\Program Files (x86)\\ImageMagick-6.3.9-Q8"; IdentifyCmd identifyCmd = new IdentifyCmd(false); IdentifyCmd.setGlobalSearchPath(imageMagickPath); ArrayListOutputConsumer output = new ArrayListOutputConsumer(); identifyCmd.setOutputConsumer(output); IMOperation op = new IMOperation(); op.format("%w,%h,%d,%f,%b"); op.addImage(TEST_DIRECTORY + "Desert.jpg"); identifyCmd.run(op); ArrayList cmdOutput = output.getOutput(); if (cmdOutput.size() > 0) { String line = cmdOutput.get(0); System.out.printf("图片信息:宽:%spx,高:%spx,所在目录:%s,文件名:%s,文件大小:%s字节 %n", (Object[]) line.split(",")); } // 生成缩略图 IMOperation op2 = new IMOperation(); op2.addImage(TEST_DIRECTORY + "Desert.jpg"); op2.resize(100, 100); // 等比 // op2.resize(100, 100, "!"); // 非等比 op2.addImage(TEST_DIRECTORY + "Desert1.jpg"); ConvertCmd cmd = new ConvertCmd(false); ConvertCmd.setGlobalSearchPath(imageMagickPath); cmd.run(op2, new Object[0]); ``` ## 日期时间处理(commons-lang, commons-lang3) ```java Date date = DateUtils.parseDate("2008-02-27", new String[] { "yyyy-MM-dd" }); System.out.println(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss SSS")); date = DateUtils.setHours(date, 23); date = DateUtils.setMinutes(date, 59); date = DateUtils.setSeconds(date, 59); date = DateUtils.setMilliseconds(date, 999); System.out.println(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss SSS")); date = DateUtils.addDays(date, 3); System.out.println(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss SSS")); ``` ## IO操作 (commons-io) ```java // 文件复制 FileInputStream in = new FileInputStream(TEST_DIRECTORY + "Desert.jpg"); FileOutputStream out = new FileOutputStream(TEST_DIRECTORY + "Desert1.jpg"); IOUtils.copy(in, out); IOUtils.closeQuietly(in); IOUtils.closeQuietly(out); // 读取文件 in = new FileInputStream(TEST_DIRECTORY + "test.txt"); //System.out.println(IOUtils.toString(in, "UTF-8")); System.out.println(new String(IOUtils.toByteArray(in), "UTF-8")); IOUtils.closeQuietly(in); ``` ## Ftp操作(commons-net-ftp) ```java FTPClient ftp = new FTPClient(); ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.err))); ftp.connect("127.0.0.1", 21); ftp.login("root", "root"); ftp.changeWorkingDirectory("/"); String[] typeNames = {"file","directory","symbolic link","unknown"}; String name; System.out.println("文件列表 :"); FTPFile[] files = ftp.listFiles(); for (FTPFile ftpFile : files) { ftpFile.getType(); name = new String(ftpFile.getName().getBytes("ISO-8859-1"), "UTF-8"); System.out.println(typeNames[ftpFile.getType()] + " --> " + name); } // 上传文件 boolean b = ftp.storeFile("test.txt", new ByteArrayInputStream("hello world!!!\n中文测试".getBytes("UTF-8"))); System.out.println("上传文件:" + (b ? "成功" : "失败")); // 下载文件 ftp.setFileType(FTPClient.BINARY_FILE_TYPE); InputStream fileInputStream = ftp.retrieveFileStream("/test.txt"); System.out.println("文件内容:"); System.out.println(IOUtils.toString(fileInputStream, "UTF-8")); ftp.disconnect(); ``` ## 获取网络资源(commons-httpclient) ```java HttpClient httpClient = new HttpClient(); HttpMethod method = new GetMethod("http://www.sina.com"); httpClient.executeMethod(method); int code = method.getStatusCode(); if (code >= 200 && code < 300) { System.out.println("获取成功:" + IOUtils.toString(method.getResponseBodyAsStream(), "UTF-8")); } method = new GetMethod("http://tva2.sinaimg.cn/crop.0.0.180.180.1024/a498586cjw1e8qgp5bmzyj2050050aa8.jpg"); httpClient.executeMethod(method); code = method.getStatusCode(); if (code >= 200 && code < 300) { FileOutputStream out = new FileOutputStream(TEST_DIRECTORY + "test.jpg"); IOUtils.copy(method.getResponseBodyAsStream(), out); IOUtils.closeQuietly(out); System.out.println("保存文件成功"); } ``` ## 二维码处理(com.google.zxing) ### 生成 ```java int width = 300, height = 300; String text = "0123456789中文测试"; Map hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 容错率 hints.put(EncodeHintType.MARGIN, 10); // 外边框 BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, 300, 300, hints); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { image.setRGB(x, y, bitMatrix.get(x, y) ? 0 : 0xFFFFFF); } } FileOutputStream out = new FileOutputStream(TEST_DIRECTORY + "qrcode.jpg"); ImageIO.write(image, "jpg", out); out.close(); System.out.println("完成"); ``` ### 读取 ```java BufferedImage image = ImageIO.read(new File(TEST_DIRECTORY + "qrcode.jpg")); LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Map hints = new Hashtable(); hints.put(DecodeHintType.CHARACTER_SET, "UTF8"); Result result = new MultiFormatReader().decode(bitmap, hints); String resultStr = result.getText(); System.out.println(resultStr); ``` >[BufferedImageLuminanceSource 文件地址](https://git.oschina.net/long1218/mytool/raw/master/src/main/java/com/google/zxing/BufferedImageLuminanceSource.java) ## Redis操作(jedis) ```java Jedis jedis = new Jedis("127.0.0.1", 6379); //jedis.auth("123456"); jedis.set("key1", "value1"); System.out.println(jedis.get("key1")); Set keys = jedis.keys("*"); Iterator iterator = keys.iterator(); while (iterator.hasNext()) { String key = iterator.next(); System.out.println(key + " : " + jedis.get(key)); jedis.del(key); } jedis.close(); ``` ## Sqlite操作(sqlite-jdbc) ```java Class.forName("org.sqlite.JDBC"); Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:sqlite:" + TEST_DIRECTORY + "test.db"); ps = conn.prepareStatement("SELECT * FROM users"); rs = ps.executeQuery(); if (rs.next()) { System.out.println(rs.getString("name") + "<=====>" + rs.getObject("phone")); } } catch (Exception e) { e.printStackTrace(); } finally { if (ps != null) ps.close(); if (rs != null) rs.close(); if (conn != null) conn.close(); } ``` ## Xml解析(Jsoup) ```java //获取tomcat配置文件的端口地址 Document document = Jsoup.parse(new File(TEST_DIRECTORY + "server.xml"), "utf-8"); Elements selects = document.select("Connector[protocol=HTTP/1.1]"); System.out.println("http端口:" + StringUtils.defaultIfEmpty(selects.attr("port"), "无")); selects = document.select("Connector[protocol=AJP/1.3]"); System.out.println("ajp端口:" + StringUtils.defaultIfEmpty(selects.attr("port"), "无")); ``` ## 验证码生成(kaptcha) ```java String savePath = TEST_DIRECTORY + "kaptcha.jpg"; Properties prop = new Properties(); InputStream in = this.getClass().getResourceAsStream("/kaptcha.properties"); prop.load(in); IOUtils.closeQuietly(in); Config config = new Config(prop); Producer producer = config.getProducerImpl(); String capText = producer.createText(); BufferedImage image = producer.createImage(capText); FileOutputStream out = new FileOutputStream(savePath); ImageIO.write(image, "jpg", out); out.close(); System.out.printf("验证码:%s,图片地址:%s%n", capText, savePath); ``` >[/kaptcha.properties](https://git.oschina.net/long1218/mytool/raw/master/src/main/resources/kaptcha.properties) ## 数据库操作(commons-dbutils) ```java String jdbcUrl = "jdbc:sqlite:" + TEST_DIRECTORY + "test.db"; Class.forName("org.sqlite.JDBC"); Connection conn = null; try { conn = DriverManager.getConnection(jdbcUrl); QueryRunner runner = new QueryRunner(); Map result = runner.query(conn, "SELECT * FROM users", new MapHandler()); System.out.println(result); } catch (SQLException e) { e.printStackTrace(); DbUtils.rollback(conn); } finally { DbUtils.closeQuietly(conn); } //------------------------------------------------------------- SQLiteDataSource dataSource = new SQLiteDataSource(); dataSource.setUrl(jdbcUrl); QueryRunner runner = new QueryRunner(dataSource); Map user = runner.query("SELECT * FROM users WHERE user_name=?", new MapHandler(), "test"); System.out.println(user); List> users = runner.query("SELECT * FROM users", new MapListHandler()); System.out.println(users); List names = runner.query("SELECT name FROM users", new ColumnListHandler()); System.out.println(names); Map> users2 = runner.query("SELECT * FROM users", new KeyedHandler("name")); System.out.println(users2); int ret = runner.update("UPDATE users SET last_login_time=?, last_update_time=? WHERE user_name=?", System.currentTimeMillis(), System.currentTimeMillis(), "test"); System.out.println("更新:" + (ret == 1)); ```