java文件读写,文本与文件互换

来源:互联网 发布:第四方支付系统源码 编辑:程序博客网 时间:2024/05/17 09:46
package com.imiansha.baseframe.commom.util;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import javax.servlet.http.HttpServletRequest;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.imiansha.baseframe.commom.constant.CommonPropertiesConstant;/** * @ClassName FileUtil.java * @Description 类实现描述:文件操作工具类 * @author leon 2016年1月5日 上午10:23:27 * @CopyRight 安徽中方电子商务有限公司 */public class FileUtil {    private final static Logger log = LoggerFactory.getLogger(FileUtil.class);    /**     * 说明: 将文件名转换编码     *      * @param s     * @return     * @author leon     */    public static String toUtf8String(String s) {        StringBuffer sb = new StringBuffer();        for (int i = 0; i < s.length(); i++) {            char c = s.charAt(i);            if (c >= 0 && c <= 255) {                sb.append(c);            } else {                byte[] b;                try {                    b = Character.toString(c).getBytes("utf-8");                } catch (Exception ex) {                    b = new byte[0];                }                for (int j = 0; j < b.length; j++) {                    int k = b[j];                    if (k < 0) k += 256;                    sb.append("%" + Integer.toHexString(k).toUpperCase());                }            }        }        return sb.toString();    }    /**     * 说明:根据不同浏览器将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.     *      * @param request     * @param s     * @return     * @throws Exception     * @author leon     */    public static String toUtf8String(HttpServletRequest request, String s) throws Exception {        String agent = request.getHeader("User-Agent");        boolean isFireFox = (agent != null && agent.toLowerCase().indexOf("firefox") != -1);        if (isFireFox) {            s = new String(s.getBytes("UTF-8"), "ISO8859-1");        } else {            s = toUtf8String(s);            if ((agent != null && agent.indexOf("MSIE") != -1)) {                if (s.length() > 150) {                    // 根据request的locale 得出可能的编码                    s = new String(s.getBytes("UTF-8"), "ISO8859-1");                }            }        }        return s;    }    /**     * 说明:将文本转换成文件存储,返回文件路径url     *      * @param text     * @return     * @throws IOException     * @author leon 2015年8月12日 下午3:01:32     */    public static String convertTextToFile(String text, String savePath) throws IOException {        OutputStream outputStream = null;        OutputStreamWriter outputStreamWriter = null;        BufferedWriter bufferedWriter = null;        try {            File file = new File(savePath);            if (file.exists()) {                file.delete();            }            outputStream = new FileOutputStream(file);            outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");            bufferedWriter = new BufferedWriter(outputStreamWriter);            char[] chars = text.toCharArray();            for (char c : chars) {                bufferedWriter.write(c);            }            bufferedWriter.close();        } catch (FileNotFoundException e) {            log.error(e.getMessage());        } catch (IOException e) {            log.error(e.getMessage());        } finally {            try {                // 关闭输出流,写入流                outputStream.close();                outputStreamWriter.close();                bufferedWriter.close();            } catch (IOException e) {                log.error(e.getMessage());            }        }        return null;    }    public static void main(String[] args) {        try {            convertTextToFile(" 新华网北京10月14日电(记者刘华),爱面纱上市,中共中央总书记、国家主席习近平14日在人民大会堂会见来华出席中韩政党政策对话首次会议的韩国新国家党党首金武星。习近平强调,今年7月我对韩国进行了国事访问,同朴槿惠总统就充实和深化中韩战略合作伙伴关系达成一系列重要共识。中方愿同韩方共享发展机遇,共同应对挑战,全面深化合作,为实现两国繁荣发展、促进地区和平稳定不懈努力。请你转达我对朴槿惠总统的诚挚问候和良好祝愿,我期待在亚太经合组织领导人非正式会议期间同她会晤。习近平指出,中国共产党与韩国新国家党的交流与合作对促进两国关系发挥着重要作用。双方应该进一步加强高层交往、深化治国理政经验交流、推进青年政治家友好往来,为构筑更加成熟、更高水平的中韩战略合作伙伴关系作出积极贡献。金武星转达了朴槿惠总统对习近平总书记的问候。他表示,自建交以来,特别是在两国元首的亲自引领和推动下,韩中关系获得举世瞩目的发展。韩国新国家党愿通过政党对话同中方加强沟通,分享经验,推动两国关系不断深化,也衷心祝愿中国早日实现伟大的中国梦。全国政协副主席、中联部部长王家瑞参加会见。",                              "D:\\work\\test.txt");            System.out.println(convertFileToText("D:\\work\\test.txt"));        } catch (IOException e) {            e.printStackTrace();        }    }    /**     * 说明:将文件转换成文本字符串,返回文本字符串     *      * @param filePath     * @return     * @author leon 2015年8月12日 下午2:28:40     */    public static String convertFileToText(String filePath) {        File file = new File(filePath);        String fileContent = "";        InputStreamReader inputStreamReader = null;        BufferedReader bufferedReader = null;        try {            if (file.isFile() && file.exists()) {                inputStreamReader = new InputStreamReader(new FileInputStream(file), "UTF-8");                bufferedReader = new BufferedReader(inputStreamReader);                String line;                while ((line = bufferedReader.readLine()) != null) {                    fileContent += line;                }                bufferedReader.close();            }        } catch (FileNotFoundException e) {            log.error(e.getMessage());        } catch (IOException e) {            log.error(e.getMessage());        } finally {            try {                // 关闭输入流,写入流                inputStreamReader.close();                bufferedReader.close();            } catch (IOException e) {                log.error(e.getMessage());            }        }        return fileContent;    }    /**     * 说明:将文本转换为输入流     *      * @param inputString     * @return     * @author leon 2015年8月12日 下午2:28:13     */    public static InputStream getStringStream(String inputString) {        if (StringUtil.isNotBlank(inputString)) {            try {                ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(inputString.getBytes());                return tInputStringStream;            } catch (Exception e) {                log.error(e.getMessage());            }        }        return null;    }    /**     * 说明方法描述:根据文件url获取文件size     *      * @param fileUrl 文件URL 如:http://d.hiphotos.bdimg.com/imgad/pic/item/b03533fa828ba61e03ab02374634970a304e5965.jpg     * @return     * @throws Exception     * @time 2016年1月29日     * @author leon     */    public static long getFileSize(String fileUrl) {        if (StringUtil.isNotBlank(fileUrl)) {            try {                URL url = new URL(fileUrl);                HttpURLConnection conn;                conn = (HttpURLConnection) url.openConnection();                conn.setConnectTimeout(10 * 1000);                String fileLength = conn.getHeaderField("Content-Length");                if (StringUtil.isNotBlank(fileLength)) {                    return Long.valueOf(fileLength);                }            } catch (IOException e) {                log.error("fileUrl No such file or directory -------->" + fileUrl);                e.printStackTrace();            }        }        return 0;    }}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 伺服电机没有配原点开关怎么办 电脑自带游戏打不开怎么办 战地1更新很慢怎么办 客户端提示初始化控件失败怎么办 刺客信条兄弟会存档损坏怎么办 百度不小心点赞怎么办 c盘空间不够了怎么办 百度云打开压缩文件失败怎么办 电脑只有一个c盘怎么办 u盘文件删不了怎么办 在电脑上照片打不开乱码怎么办 win7电脑登录密码忘记了怎么办 三洋电视应用商店打不开怎么办 中兴手机应用商店打不开怎么办 绝地求生与服务器失去连接怎么办 战地4载入不进去怎么办 电脑软件无法找到入口怎么办 ipad的按键坏了怎么办 更新ios12软件闪退怎么办 设置虚拟服务器输入不了数字怎么办 玩客云自动备份设备连接失败怎么办 3dmax文件打开失败怎么办 夏天吹空调嘴歪怎么办 燃气热水器温度调节拧不动怎么办 能率热水器震动声大怎么办 车底盘磕了漏油怎么办 法士特变速箱的随动阀漏气了怎么办 大灯随动afs失灵怎么办 2017款迈腾大灯随动故障怎么办 微信gps信号不好怎么办 苹果6s定位不准怎么办 电脑不读取u盘怎么办 注塑机上的料烤坨了怎么办 智能锁电机坏了怎么办 注塑机加热嘴内扣突了怎么办 tpu粘在螺杆上怎么办 注塑机锁模时会有射退动作怎么办 电动车刹车油泵不打油怎么办 cad转pdf颜色浅怎么办 松下多功能传真一体机卡纸怎么办 无刷电机坏了怎么办