当前位置:  编程技术>java/j2ee

java对指定目录下文件读写操作介绍

    来源: 互联网  发布时间:2014-10-21

    本文导语:  最近因为项目的国际化的需要,需要对整个项目的100来个插件做国际化,这是一件痛苦的事情,因为纯体力劳动。为了省点工作量,想着能不能写个程序批处理了,减少点工作量,于是就有了下面的代码。 1.读取指定的(.java...

最近因为项目的国际化的需要,需要对整个项目的100来个插件做国际化,这是一件痛苦的事情,因为纯体力劳动。为了省点工作量,想着能不能写个程序批处理了,减少点工作量,于是就有了下面的代码。
1.读取指定的(.java)文件:
代码如下:

public static String readFile(String path) throws IOException {
File f = new File(path);
StringBuffer res = new StringBuffer();
String filePathStr = f.getPath();
System.out.println("获取文件的路径:::::::"+filePathStr);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis,Charset.forName("GBK")); //以gbk编码打开文本文件
BufferedReader br = new BufferedReader(isr, 8192 * 8);
String line = null;
int linenum = 0;
while((line=br.readLine())!=null) {
linenum ++;
res.append(line+"此处可以添加你自己的字符串处理逻辑"+"rn");
}
br.close();
return res.toString();
}

2.读取的文件内容信息写到指定的(.java)文件
代码如下:

public static boolean writeFile(String cont, String path) {
try {
File dist = new File(path);
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(dist),"GBK");
writer.write(cont);
writer.flush();
writer.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}

3.查找指定目录下所有符合条件的.java文件,并更新文件信息
代码如下:

/**
* 查找文件
* @param f
* @throws IOException
*/
public static void findFile(File f) throws IOException {
if(f.exists()) {
if(f.isDirectory()) {
for(File fs:f.listFiles(ff)) {
findFile(fs);
}
} else {
updateFile(f);
}
}
}
/**
* 逐行读java文件
* @param f
* @throws IOException
*/
private static void updateFile(File f) throws IOException {
String filePathStr = f.getPath();
System.out.println("开始读取文件的路径:::::::"+filePathStr);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis,Charset.forName("GBK")); //以gbk编码打开文本文件
BufferedReader br = new BufferedReader(isr, 8192 * 8);
String line = null;
int linenum = 0;
StringBuffer res = new StringBuffer();
while((line=br.readLine())!=null) {
String updateStr= updateStr(line);
res.append(updateStr+"rn");
if(!line.trim().equals(updateStr.trim())) {
linenum ++;
}
}
br.close();
//如果文件有修改,则修改后的文件,覆盖原有文件
if(linenum>0) {
System.out.println("=============================");
System.out.println("filePathStr:"+filePathStr);
System.out.println("文件修改了:"+linenum+"处。");
System.out.println("=============================");
String cont = res.toString();
ReadWriteFile.write(cont, filePathStr);
}
}
/**
* 验证读取的字符串信息
* 和更新字符串信息
* @param str
*/
private static String updateStr(String str) {
//判断字符串是否是需要更新的字符串
boolean isok = filterStr(str);
int strNum = StringValidation.strNum(str, StringValidation.ch);
if(isok || strNum == 0) {
return str;
} else {
String temp = "";
for(int i=1;i=0)
|| (str.indexOf("package ")>=0)
|| (str.indexOf(" class ")>=0)
|| (str.indexOf("//$NON-NLS")>=0)
|| (str.indexOf("//")==0)
|| (str.indexOf("/*")>=0)
|| (str.indexOf("*")>=0)
|| (str.trim().indexOf("@")==0)
|| (str.indexOf(""")==-1)
|| ("".equals(str))
|| isCh(str);
return isok;
}
/**
* 验证字符串是否含有中文字符
* @param str
* @return
*/
public static boolean isCh(String str) {
Pattern pa = Pattern.compile("[u4E00-u9FA0]");
Matcher m = pa.matcher(str);
boolean isok = m.find();
return isok;
}

总结:当我们拿到一个别人给的需求,先不要急于去处理,先分析,再分析,然后做出最优的解决方案,处理好这项工作。

    
 
 

您可能感兴趣的文章:

  • Java读写包括中文的txt文件时不同编码格式问题解决
  • java执行操作系统命令的问题:如何判断多个操作系统? iis7站长之家
  • java中如何实现串口读写?
  • JAVA Applet能够读写文件吗?
  • Java中有没有什么类来实现读写注册表文件?
  • VCard格式读写的Java类库 cardme
  • Java读写MPX文件包 MPXJ
  • 怎样用JAVA函数读写注册表,有这样的函数吗
  • 求救,java中读写excel的问题
  • 有什么办法自己用java编写一个数据库读写的文件呀?
  • RSS的Java读写库 RSSpect
  • java中如何实现读写类似vc中结构数据?
  • 高分求够JAVA读写XML方面的电子书籍下载地址
  • 请问:java语言能读写注册表吗?多谢多谢,
  • 如何用java在linux中读写串口啊?请高手指点
  • 用JAVA的IO怎么实现图形文件(GIF/JPG)的读写,100分奉送!
  • 学习JAVA时写了个读写Ini文件的类,赏脸的朋友请进来留个话吧……
  • Java 配置文件读写 Commons Configuration
  • Java的中文读写问题,有请各位了。
  • 分享关于JAVA 中使用Preferences读写注册表时要注意的地方
  • java多线程读写文件示例
  • 用 JAVA(不是 JAVA Script) 如何在指定的位置安排一个按扭(Button)?
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • Java中如何把控件放到自己指定的位置
  • 怎样在JAVA里实现获取指定服务器上所有可用数据库的列表??
  • redhat 9 下安装 oracle9i 过程中,要求指定java目录,到底是哪一个目录?
  • 用java.util.random怎么得到一个指定区间的随机数
  • 如何让java的编译时的错误信息或输出的结果信息显示在指定的窗口中
  • Java中如何将一个float数显示时指定小数点位数
  • 如何用java生成指定范围的随机数
  • java.rmi.Registry 的rebind怎么用?如何把一个远程对象绑定到指定端口?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java操作excel2007文档介绍及代码例子
  • java执行操作系统命令的问题:如何判断多个操作系统?
  • java初学者问:java操作平台是什么?用什么工具?
  • 我是java新手,请问java中与平台相关的操作是怎样实现的
  • Java的XML操作类库 JDOM
  • Java操作系统 JNode
  • Java 操作 Excel 的类库 jExcelApi
  • JAVA与数据库操作问题
  • 请问又没有java控制.exe或操作注册表的方法?
  • Java的Excel操作包 OpenXLS
  • Java和DLL(COM)互操作 Jawin
  • 寻求java对串口操作的帮助
  • 小弟有如下问题:JAVA中怎样实现对操作平台的句柄!谢谢了:)
  • java 对树的操作,TreeSet,能否插入相同的数据,如果相同,如何解决
  • java的操作平台是什么?用什么工具?
  • JAVA可以获得操作系统的临时目录的路径吗?
  • Java类文件操作库 Barista
  • Java程序中能否直接操作本地文件?
  • 在Java里,有没有直接对XML文件进行操作的函数?
  • java中判断本机操作系统的类和方法
  • 怎样用JAVA语言实现对串口的操作?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3