public class Util { /** * 读文件到内存,返回的编码方式是utf-8 * @param fileName * @return * 2011-11-2 */ public static String readFile(String fileName){ File file = new File(fileName); Reader reader = null; StringBuffer buf = new StringBuffer(); String outString =""; try { //以utf-8的形式读入文件 reader = new InputStreamReader(new FileInputStream(file),"utf-8"); int tempchar; while ((tempchar = reader.read()) != -1) { if (((char) tempchar) != '\r') { char aa = (char) tempchar; buf.append((char) tempchar); } } outString = buf.toString(); //判断读入的文件编码方式是否是gb2312的形式,要是不是,重新以gb2312的形式读入文件,之后再改成utf-8的形式 if(buf.toString().contains("charset=gb2312")){ buf = new StringBuffer(); //以gb2312的形式读入文件 reader = new InputStreamReader(new FileInputStream(file),"gb2312"); while ((tempchar = reader.read()) != -1) { if (((char) tempchar) != '\r') { char aa = (char) tempchar; buf.append((char) tempchar); } } outString = Util.code2code(buf.toString(), "gb2312", "utf-8"); } reader.close(); } catch (Exception e) { e.printStackTrace(); } return outString; } /** * 输出文件 * @param fileName * @param s * 2011-11-2 */ public static void writerFile(String fileName,String s){ String mkd = fileName.substring(0, fileName.lastIndexOf("\\")); //生成目录 new File(mkd).mkdirs(); FileWriter fw; try { fw = new FileWriter(fileName); fw.write(s); fw.flush(); fw.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 读目录,把目录下的文件名生成List * @param delpath * @return * 2011-11-2 */ public static List readDirectory(String delpath){ List list = new ArrayList(); File file = new File(delpath); String[] monthlist = file.list(); int l=1; for (int i = 0; i < monthlist.length; i++) { File monthfile = new File(delpath + "\\" + monthlist[i]); String monthpath=monthfile.getPath(); String[] daylist = monthfile.list(); for(int j = 0 ; j < daylist.length ; j++){ File dayfile = new File(monthpath + "\\" + daylist[j]); String[] contentlist = dayfile.list(); String datepath=dayfile.getPath(); if(contentlist!=null){ for(int k =0;k < contentlist.length;k++){ File content = new File(datepath + "\\" + contentlist[k]); String path = content.getPath(); list.add(content.getPath()); System.out.println(l++); // System.out.println(content.getPath()); } } } } System.out.println("******"); return list; } /** * 编码转换 * @param strIn 要转换的字符串 * @param sourceCode 原来的编码方式 * @param targetCode 目标编码方式 * @return * 2011-11-2 */ public static String code2code(String strIn, String sourceCode,String targetCode) { String strOut = null; if (strIn == null || (strIn.trim()).equals("")) return strIn; try { byte[] b = strIn.getBytes(sourceCode); String str = new String(b, sourceCode); byte[] c = str.getBytes(targetCode); strOut = new String(c, targetCode); } catch (Exception e) { e.printStackTrace(); return null; } return strOut; } }
相关推荐
一个非常好用的csv文件操作工具
java通过snakeyaml类能非常方便的操作,读写yaml文件。
完整的java文件读写工具类 包括读取、创建、删除文件, 检查、创建、删除目录
java各种工具类:包括日期工具类、字符串工具类、文件工具类、xml读写工具类、json工具类、http访问工具类、压缩包工具类等等。非常齐全
大家可以不用在为操作文件发愁了! 小弟觉得这个工具类还不是很完善,高手在帮忙完善一下,别忘了共享出来哦!
本人没分了,特别来分享一下,通用的XML读写工具类,同志们下下绝对不后悔
主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...
最近在整理自己电脑的音乐文件,希望音乐tag标签信息能使用java程序批量处理,网上找了相关资料,发现有一个老外写的工具类org.jaudiotagger可以满足需要,但在使用过程中发现读取中文变成乱码问题,然后我把这个...
适用于java读写excl操作 1.引用POI技术 ,提供行/列/单元格等指定读写
java上传并读取excel工具类 涉及到MultiFile转FIle 以及多个sheet页
dbf-jdbc-wisecoders,JAVA 读写DBF文件工具包
java中poi读写excel封装工具类(兼容office2003和2007等版本),绝对可用的例子!
java读写文件简单命令
主要为大家详细介绍了java文件读写工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最...
内容:博客代码 一次代码重构之旅-快速读写xml文件工具类封装 http://blog.csdn.net/lk_blog/article/details/8220803
字符串拷贝,http链接,json解析,xml解析,map对象转换,日期类型转换,Io流读写,excel写入导出,签名验签类,排序类,参数格式校验类,对称加密,http长链接,ftp/sftp链接工具等,应有尽有。
Java整理的基础工具类项目 Spring+Redis实现无缝读写分离插入(com.shawntime.utils.rwdb) Redis操作封装(com.shawntime.utils.cache.redis) Redis分布式锁实现(com.shawntime.utils.lock) 读写锁控制强制读取...