生成file 工具类

package com.shs.framework.web.utls;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.StringTokenizer;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggerFactory;

/**
 * <P>Description:文件生成器</P>
 * @ClassName: FileUtils
 * @author wangmingyu  2015-4-9 下午04:30:11
 * @see TODO
 */
public class FileUtils {

    private static Logger logger=Logger.getLogger(FileUtils.class);
    private static FileUtils fileUtils;

    public static FileUtils newFileUtils() {
        if (null == fileUtils)
            fileUtils = new FileUtils();
        return fileUtils;
    }

    private byte[] getRequestData(HttpServletRequest request) throws IOException {
        InputStream cin = request.getInputStream();
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = cin.read(buffer)) != -1) {
            outStream.write(buffer, 0, len);
        }
        cin.close();
        byte[] fileData = outStream.toByteArray();
        outStream.close();
        return fileData;
    }

    private String getRequestDataToString(HttpServletRequest request) throws IOException {
        InputStream cin = request.getInputStream();
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = cin.read(buffer)) != -1) {
            outStream.write(buffer, 0, len);
        }
        cin.close();
        byte[] fileData = outStream.toByteArray();
        outStream.close();
        return new String(fileData, "UTF-8");
    }

    /**
     * <p>Title: readTxtFile</p>
     * <p>Description: 读取数据</p>
     * @param filePath
     * @return
     * @author wangmingyu  2015-4-8 下午02:17:19
     */
    public String readTxtFile(String filePath) {
        String lineTxt = "";
        StringBuilder str = new StringBuilder();
        try {
            String encoding = "UTF-8";
            File file = new File(filePath);
            if (file.isFile() && file.exists()) { //判断文件是否存在
                InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);//考虑到编码格式
                BufferedReader bufferedReader = new BufferedReader(read);

                while ((lineTxt = bufferedReader.readLine()) != null) {
                    str.append(lineTxt);
                }
                read.close();
            } else {
                logger.info("找不到指定的文件");
            }
        } catch (Exception e) {
            logger.info("读取文件内容出错");
            e.printStackTrace();
        }
        return str.toString();
    }

    /**
     * <p>Title: saveFileTitles</p>
     * <p>Description: 生成文件</p>
     * @param fileDes 文件地址
     * @param filedata 文件内容
     * @throws Exception
     * @author wangmingyu  2015-4-9 下午04:29:23
     */
    public void saveFileTitles( String fileDes, String filedata) throws Exception {
        boolean isSave=false;
        String filePath = fileDes.substring(0, fileDes.lastIndexOf("\\"));
        File toFile = new File(filePath);
        if(StringUtils.isBlank(filedata)){
            return;
        }
        if (!toFile.exists() && !toFile.isDirectory()) {
            //            throw new Exception("file exist");
            createFolders(filePath);
        }
        toFile = new File(fileDes);
        String fileData = "";
        if (toFile.exists()) {
            fileData = readTxtFile(fileDes);
            String fileDatas[]=fileData.split(",");
            //循环判断是否已经存储过
            for(String d:fileDatas){
                if(filedata.equals(d)){
                    isSave=true;
                }
            }
            if(!isSave){//未存储的 进行数据保存
                if(!StringUtils.isBlank(fileData)) fileData = "," + filedata;else fileData =  filedata;
            }else{
                fileData="";
            }
        } else {
            fileData = filedata;
        }
        Writer writer = new OutputStreamWriter(new FileOutputStream(toFile, true));
        //        FileOutputStream outImgStream = new FileOutputStream(toFile);
        writer.write(fileData);
        writer.close();
    }
    /**
     * <p>Title: clearFileData</p>
     * <p>Description: 清除 文件信息</p>
     * @param request
     * @param fileDes
     * @param filedata
     * @throws Exception
     * @author wangmingyu  2015-4-9 下午04:28:22
     */
    public void clearFileData( String fileDes) throws Exception {
        File toFile = new File(fileDes);

        if (!toFile.exists() && !toFile.isDirectory()) {
            //            throw new Exception("file exist");
            return ;
        }
        toFile.delete();
    }
    /**
     * <p>Title: saveUrlFile</p>
     * <p>Description:存储文件</p>
     * @param request
     * @param fileDes
     * @throws Exception
     * @author wangmingyu  2015-4-9 下午03:37:26
     */
    public void saveUrlFile(HttpServletRequest request, String fileDes) throws Exception {
        String filePath = fileDes.substring(0, fileDes.lastIndexOf("\\"));
        File toFile = new File(filePath);

        if (!toFile.exists() && !toFile.isDirectory()) {
            createFolders(filePath);
        }
        File file = new File(fileDes);
        FileOutputStream outImgStream = new FileOutputStream(file);
        outImgStream.write(getRequestData(request));
        outImgStream.close();
    }
    /**
     * <p>Title: saveUrlFile</p>
     * <p>Description:存储文件</p>
     * @param data 存储内容
     * @param fileDes
     * @throws Exception
     * @author wangmingyu  2015-4-9 下午03:37:26
     */
    public boolean saveUrlFile(String data,String fileDes)  {
        try {
            String filePath = fileDes.substring(0, fileDes.lastIndexOf("\\"));
            File toFile = new File(filePath);

            if (!toFile.exists() && !toFile.isDirectory()) {
                //            throw new Exception("file exist");
                createFolders(filePath);
            }
            toFile = new File(fileDes);
            String fileData = data;
            if(toFile.exists()){
                return true;
            }
            toFile.createNewFile();
            Writer writer = new OutputStreamWriter(new FileOutputStream(toFile, true));
            //        FileOutputStream outImgStream = new FileOutputStream(toFile);
            writer.write(fileData);
            writer.close();
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
            return false;
        }
        return true;
    }
    /**
     * <p>Title: CreateFolders</p>
     * <p>Description: 创建多级目录</p>
     * @param fileDes
     * @throws Exception
     * @author wangmingyu  2015-4-9 下午03:31:28
     */
    public static void createFolders(String fileDes) throws Exception {
        StringTokenizer st = new StringTokenizer(fileDes, File.separator);
        StringBuilder sb = new StringBuilder();
        String osname = System.getProperty("os.name");
        if (osname.compareToIgnoreCase("linux") == 0)
            sb.append(File.separator);
        while (st.hasMoreTokens()) {
            sb.append(st.nextToken());
            File file = new File(sb.toString());
            if (!file.exists())
                file.mkdir();
            sb.append(File.separator);

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java生成二维码工具类的源码是一段用Java语言编写的程序代码,用于生成二维码图片。下面是一个简单的Java生成二维码工具类的源码示例: ```java import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; public class QRCodeGenerator { public static void main(String[] args) { String text = "https://www.example.com"; // 要生成二维码的内容 int width = 300; // 二维码图片的宽度 int height = 300; // 二维码图片的高度 String format = "png"; // 二维码图片的格式 try { BufferedImage image = generateQRCode(text, width, height); saveImage(image, format, "qrcode.png"); System.out.println("二维码已生成。"); } catch (Exception e) { e.printStackTrace(); } } // 生成二维码图片 public static BufferedImage generateQRCode(String text, int width, int height) throws Exception { QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height); int matrixWidth = bitMatrix.getWidth(); BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, matrixWidth, matrixWidth); graphics.setColor(Color.BLACK); for (int i = 0; i < matrixWidth; i++) { for (int j = 0; j < matrixWidth; j++) { if (bitMatrix.get(i, j)) { graphics.fillRect(i, j, 1, 1); } } } return image; } // 保存二维码图片 public static void saveImage(BufferedImage image, String format, String filePath) throws IOException { ImageIO.write(image, format, new File(filePath)); } } ``` 这个工具类使用了Google的ZXing库来生成二维码。主要包含两个方法:`generateQRCode()`用于生成二维码图片,`saveImage()`用于保存二维码图片到文件。 使用时,只需要指定要生成二维码的内容、图片的宽度和高度,然后调用`generateQRCode()`方法获取生成的二维码图片,最后保存到文件即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值