十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.io.BufferedReader;
为莱州等地区用户提供了全套网页设计制作服务,及莱州网站建设行业解决方案。主营业务为做网站、网站建设、莱州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Day02_B {
static String path="K:/Test/Name.txt";//路径
public static void main(String[] args) {
File fileText=new File(path);//文件
if(fileText.canExecute()) //如果文件存在就继续
setText(fileText,"刚","xx");//“刚”指定改为:“XX”
}
private static void setText(File fileText,String target,String src) {//修改
BufferedReader br=null;
PrintWriter pw=null;
StringBuffer buff=new StringBuffer();//临时容器!
String line=System.getProperty("line.separator");//平台换行!
try {
br=new BufferedReader(new FileReader(fileText));
for(String str=br.readLine();str!=null;str=br.readLine()) {
if(str.contains(target))
str=str.replaceAll(target,src);
buff.append(str+line);
}
pw=new PrintWriter(new FileWriter(fileText),true);
pw.println(buff);
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
if(br!=null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
if(pw!=null)
pw.close();
}
}
}
整体思路如下:
1、用 FileInputStream 读取文件内容;
2、修改内容,string操作;
3、用 FileOutputStream 写文件内容;
参考例子如一下:
import java.io.*;
public class TestBufferStream{
public static void main(String[] args){
try{
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"));
String s = null;
while((s = in.readLine()) != null){
out.write(s);
out.newLine();
}
out.flush();
in.close();
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
以下程序实现的功能是批量修改文件后缀:
import java.io.*;
/**
* JAVA实现的批量更改文件后缀名的程序。
*
* @author rommnn
*/
public class ExtBatchRename {
/**
* 修改程序。br
* 内部递归调用,进行子目录的更名
*
* @param path
* 路径
* @param from
* 原始的后缀名,包括那个(.点)
* @param to
* 改名的后缀,也包括那个(.点)
*/
public void reName(String path, String from, String to) {
File f = new File(path);
File[] fs = f.listFiles();
for (int i = 0; i fs.length; ++i) {
File f2 = fs[i];
if (f2.isDirectory()) {
reName(f2.getPath(), from, to);
} else {
String name = f2.getName();
if (name.endsWith(from)) {
f2.renameTo(new File(f2.getParent() + "/" + name.substring(0, name.indexOf(from)) + to));
}
}
}
}
public static void main(String[] args) {
ExtBatchRename rf = new ExtBatchRename();
rf.reName("d:/", ".jsp", ".html");
}
}
我首先说下思路吧,你想更改文件中的字符串,首先你要使用java中的io把文件里面的内容全部读到一个字符串当中,然后对这个字符串进行查找替换的操作,最后在把你更改之后的这个字符串写进文件当中,当然是覆盖掉这个文件。
这里我就用到FileOutputStream FileInputStream BufferedReader PrintWriter
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
try {
File file = new File("c:\\abc.txt");
// 建立一个file对象,参数就是你想访问文件的路径,这里我就不验证文件是否存在了
// 查下api即可
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(file)));
List list =new ArrayList();
//定义一个集合存放每一行的字符串
while(true){
String str=br.readLine();
//读取文件当中的一行
if(str==null) break;
//如果读取的是空,也就是文件读取结束 跳出循环
int index=str.indexOf("zhidao");
//看此行的是否包含zhidao
if(index!=-1){
str.replace("zhidao", "answer");
//如果包含就把zhidao 换成answer
}
list.add(str);
//把修改之后的str放到集合当中
}
br.close();
PrintWriter pw=new PrintWriter(file);
//建立一个输出流,把东西写入文件
for(int i=0;ilist.size();i++){
String str =(String)list.get(i);
//从集合当中取出字符串
pw.println(str);
//把该字符串写入文件当中
}
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
importjava.io.IOException;/××只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限是644.×/publicclassFilePermission{publicstaticvoidmain(String[]args){try{Filefile=newFile("/home/test3.txt");if(