精华内容
下载资源
问答
  • 应用场景:比方有一个深层次的文件目录结构,如:javaAPI每一个文件中面都有同样的内容,而我们要统一改动为其它内容。上千个文件假设一个个改动显得太不明智。import java.io.BufferedReader;import java.io.File;...

    应用场景:比方有一个深层次的文件目录结构,如:javaAPI

    每一个文件中面都有同样的内容,而我们要统一改动为其它内容。上千个文件假设一个个改动显得太不明智。import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.InputStreamReader;

    import java.io.PrintWriter;

    public class Test {

    /**

    * @author itmyhome

    */

    public static void main(String[] args) {

    File f = new File("F:/javaAPI/java/lang/reflect");

    print(f, 0);

    }

    /**

    * 遍历目录

    *

    * @param f

    * @param len

    */

    public static void print(File f, int len) {

    File[] file = f.listFiles();

    for (int i = 0; i < file.length; i++) {

    if (file[i].isDirectory()) { //推断是否目录

    print(file[i], len + 1);

    }

    // 为防止输出文件覆盖源文件,所以更改输出盘路径 也可自行设置其它路径

    File outPath = new File(file[i].getParent().replace("F:", "E:"));

    File readfile = new File(file[i].getAbsolutePath());

    if (!readfile.isDirectory()) {

    String filename = readfile.getName(); // 读到的文件名称

    String absolutepath = readfile.getAbsolutePath(); // 文件的绝对路径

    readFile(absolutepath, filename, i, outPath); // 调用 readFile

    }

    }

    }

    /**

    * 读取目录下的文件

    *

    * @return

    */

    public static void readFile(String absolutepath, String filename,

    int index, File outPath) {

    try {

    BufferedReader bufReader = new BufferedReader(new InputStreamReader(

    new FileInputStream(absolutepath), "gb2312")); // 数据流读取文件

    StringBuffer strBuffer = new StringBuffer();

    String newStr = "i love you too";

    String oldStr = "i love you";

    for (String temp = null; (temp = bufReader.readLine()) != null;

    temp = null) {

    if ((temp.indexOf(oldStr) != -1) &&

    (temp.indexOf(oldStr) != -1)) { // 推断当前行是否存在想要替换掉的字符

    temp = temp.replace(oldStr, newStr); // 此处进行替换

    }

    strBuffer.append(temp);

    strBuffer.append(System.getProperty("line.separator")); // 换行符

    }

    bufReader.close();

    if (outPath.exists() == false) { // 检查输出目录是否存在,若不存在先创建

    outPath.mkdirs();

    System.out.println("已成功创建输出目录:" + outPath);

    }

    PrintWriter printWriter = new PrintWriter(outPath + "\\" +

    filename, "gb2312"); // 替换后输出文件路径

    printWriter.write(strBuffer.toString().toCharArray()); //又一次写入

    printWriter.flush();

    printWriter.close();

    System.out.println("第 " + (index + 1) + " 个文件 " + absolutepath +

    " 已成功输出到 " + outPath + "\\" + filename);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    展开全文
  • java文件替换写法

    2021-02-12 14:21:55
    java文件替换写法@Testpublic void we1() throws Exception {FileReader fileReader = new FileReader("a.txt");FileWriter fileWriter = new FileWriter("ss.txt");File src = new File("H:/test.txt");String cont...

    java文件替换写法

    @Test

    public void we1() throws Exception {

    FileReader fileReader = new FileReader("a.txt");

    FileWriter fileWriter = new FileWriter("ss.txt");

    File src = new File("H:/test.txt");

    String cont = Monitoring.readfileconten("H:/test.txt");

    System.out.println(cont);

    //对得到的内容进行处理

    cont = cont.replaceAll("aaa", "bbb");

    System.out.println(cont);

    //更新源文件

    System.out.println(Monitoring.write(cont, src));

    }

    public static String readfileconten(String path) {

    File file = new File(path);

    StringBuffer stringBuffer = new StringBuffer();

    String lin = null;

    try {

    BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

    while ((lin = bufferedReader.readLine()) != null) {

    stringBuffer.append(lin + "\n");

    }

    bufferedReader.close();

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    return stringBuffer.toString();

    }

    public static boolean write(String cont, File dist) {

    try {

    BufferedWriter writer = new BufferedWriter(new FileWriter(dist));

    writer.write(cont);

    writer.flush();

    writer.close();

    return true;

    } catch (IOException e) {

    e.printStackTrace();

    return false;

    }

    }

    ©著作权归作者所有:来自51CTO博客作者知止内明的原创作品,如需转载,请注明出处,否则将追究法律责任

    您好,我好,大家好!持之以恒善始善终

    赞赏

    0人进行了赞赏支持

    展开全文
  • import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class ChangeFile {public ...

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    import java.io.InputStreamReader;

    import java.io.PrintWriter;

    public class ChangeFile {

    public static void main(String[] args) {

    try {

    BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D:/EntNatureDistributionDAO.txt"))));//数据流读取文件

    StringBuffer strBuffer = new StringBuffer();

    String empty = "";

    String tihuan = "";

    for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) {

    if(temp.indexOf("/*") != -1 && temp.indexOf("*/") != -1){ //判断当前行是否存在想要替换掉的字符 -1表示存在

    tihuan = temp.substring(0, 10);

    temp = temp.replace(tihuan, empty);//替换为你想要的东东

    }

    strBuffer.append(temp);

    strBuffer.append(System.getProperty("line.separator"));//行与行之间的分割

    }

    bufReader.close();

    PrintWriter printWriter = new PrintWriter("E:/EntNatureDistributionDAO.txt");//替换后输出的文件位置

    printWriter.write(strBuffer.toString().toCharArray());

    printWriter.flush();

    printWriter.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    适用:如服务器崩溃 导致文件丢失,还原后类文件在每一行的开头都加了很多注释(如下)

    /* */ package com.itown.iesap.starquery.dao;

    /* */

    /* */ import com.itown.framework.impl.ThreadContext;

    /* */ import com.itown.framework.persistence.AbstractDao;

    .........很多很多.....

    替换之后就是这样的:

    package com.itown.iesap.starquery.dao;

    import com.itown.framework.impl.ThreadContext;

    import com.itown.framework.persistence.AbstractDao;

    .........很多很多......

    如果你又成百上千个这样的文件替换那就要读取文件夹下的所有文件:

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.InputStreamReader;

    import java.io.PrintWriter;

    public class ChangeFile {

    public static void main(String[] args) {

    try {

    //读取指定文件夹下的所有文件

    String filepath = "D:/AOE/abc/";//给我你的目录文件夹路径

    File file = new File(filepath);

    if (!file.isDirectory()) {

    System.out.println("---------- 该文件不是一个目录文件 ----------");

    } else if (file.isDirectory()) {

    System.out.println("---------- 很好,这是一个目录文件夹 ----------");

    String[] filelist = file.list();

    for (int i = 0; i < filelist.length; i++) {

    File readfile = new File(filepath + "\\" + filelist[i]);

    //String path = readfile.getPath();//文件路径

    String absolutepath = readfile.getAbsolutePath();//文件的绝对路径

    String filename = readfile.getName();//读到的文件名

    开始挨个的读取文件

    BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(absolutepath)));//数据流读取文件

    StringBuffer strBuffer = new StringBuffer();

    String empty = "";

    String tihuan = "";

    for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) {

    if(temp.indexOf("/*") != -1 && temp.indexOf("*/") != -1){ //判断当前行是否存在想要替换掉的字符 -1表示存在

    tihuan = temp.substring(0, 9);//这里截取多长自己改

    temp = temp.replace(tihuan, empty);//替换为你想要的东东

    }

    strBuffer.append(temp);

    strBuffer.append(System.getProperty("line.separator"));//行与行之间的分割

    }

    bufReader.close();

    PrintWriter printWriter = new PrintWriter("E:/ttt/"+filename);//替换后输出的文件位置(切记这里的E:/ttt 在你的本地必须有这个文件夹)

    printWriter.write(strBuffer.toString().toCharArray());

    printWriter.flush();

    printWriter.close();

    System.out.println("ok 第 " + (i+1) +" 个文件操作成功!");

    读取兵输出一个文件结束

    }

    System.out.println("---------- 所有文件操作完毕 ----------");

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    这样更加清晰明了些:

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.InputStreamReader;

    import java.io.PrintWriter;

    public class ReadFile {

    /**

    * 主方法测试

    * @param args

    * @author 杜文俊

    * @update 2013-6-26 下午1:36:31

    */

    public static void main(String[] args) {

    String filePath = "D:/AOE/abc/"; //给我你要读取的文件夹路径

    File outPath = new File("E:/AOE/abc/"); //随便给一个输出文件夹的路径(不存在也可以)

    readFolder(filePath,outPath);

    }

    /**

    * 读取文件夹

    * @return

    */

    public static void readFolder(String filePath,File outPath){

    try {

    //读取指定文件夹下的所有文件

    File file = new File(filePath);

    if (!file.isDirectory()) {

    System.out.println("---------- 该文件不是一个目录文件 ----------");

    } else if (file.isDirectory()) {

    System.out.println("---------- 很好,这是一个目录文件夹 ----------");

    String[] filelist = file.list();

    for (int i = 0; i < filelist.length; i++) {

    File readfile = new File(filePath + "\\" + filelist[i]);

    //String path = readfile.getPath();//文件路径

    String absolutepath = readfile.getAbsolutePath();//文件的绝对路径

    String filename = readfile.getName();//读到的文件名

    readFile(absolutepath,filename,i,outPath);//调用 readFile 方法读取文件夹下所有文件

    }

    System.out.println("---------- 所有文件操作完毕 ----------");

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 读取文件夹下的文件

    * @return

    */

    public static void readFile(String absolutepath,String filename,int index,File outPath){

    try{

    BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(absolutepath)));//数据流读取文件

    StringBuffer strBuffer = new StringBuffer();

    String empty = "";

    String tihuan = "";

    for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) {

    if(temp.indexOf("/*") != -1 && temp.indexOf("*/") != -1){ //判断当前行是否存在想要替换掉的字符 -1表示存在

    tihuan = temp.substring(0, 9);//这里截取多长自己改

    temp = temp.replace(tihuan, empty);//替换为你想要的东东

    }

    strBuffer.append(temp);

    strBuffer.append(System.getProperty("line.separator"));//行与行之间的分割

    }

    bufReader.close();

    if(outPath.exists() == false){ //检查输出文件夹是否存在,若不存在先创建

    outPath.mkdirs();

    System.out.println("已成功创建输出文件夹:" + outPath);

    }

    PrintWriter printWriter = new PrintWriter(outPath+"\\"+filename);//替换后输出的文件位置(切记这里的E:/ttt 在你的本地必须有这个文件夹)

    printWriter.write(strBuffer.toString().toCharArray());

    printWriter.flush();

    printWriter.close();

    System.out.println("第 " + (index+1) +" 个文件 "+ absolutepath +" 已成功输出到 " +outPath+"\\"+filename);

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    展开全文
  • 我要替换其中的单个文件“say main.zip/foo”。我知道:http://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipOutputStream.html但是,这并不能满足我的要求,因为它会创建一个新的Zip文件-因此,我还必须在...

    问题

    我有一个现有的zip文件“main.zip”。我要替换其中的单个文件“say main.zip/foo”。

    我知道:

    http://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipOutputStream.html

    但是,这并不能满足我的要求,因为它会创建一个新的Zip文件-因此,我还必须在main.zip中添加所有现有条目。

    题:

    有没有一种方法可以用Java“替换” Zip存档中的单个文件? (无需重新创建新的zip存档并复制所有旧数据)。

    参考方案

    我觉得你很幸运。

    结合使用Java 7 java.nio.file.FileSystem和Files.copy(),我设法在一瞬间将文本文件插入到大型zipfile中。

    public static void main(String[] argv) {

    Path myFilePath = Paths.get("c:/dump2/mytextfile.txt");

    Path zipFilePath = Paths.get("c:/dump2/myarchive.zip");

    try( FileSystem fs = FileSystems.newFileSystem(zipFilePath, null) ){

    Path fileInsideZipPath = fs.getPath("/mytextfile.txt");

    Files.copy(myFilePath, fileInsideZipPath);

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    它使用ZipFileSystem Provider“加载” zip。然后,您可以将任何内容复制到其中。更改似乎发生在fs.close()上

    Read more @ oracle

    java.util.Scanner不返回到提示 - java

    import java.util.Scanner; class newClass { public static void main(String args[]) { Scanner s = new Scanner(System.in); while (s.hasNext()) { System.out.println(s.next()); } s.clos…java.util.HashSet是否不遵循其规范? - java

    作为相对的Java noob,我很困惑地发现以下内容:Point.java:public class Point { ... public boolean equals(Point other) { return x == other.x && y == other.y; } ... } Edge.java:public class Edge…使用java.util.properties存储ArrayList和HashMap - java

    如何使用ArrayList存储HashMap和/或java.util.properties变量?如果不可能,可以使用其他什么类来存储应用程序配置? 参考方案 如果只需要将集合序列化为字符串,我强烈建议XStream。它使用反射将类序列化为XML。如果默认行为对您要序列化的类不起作用,则有文档,但是到目前为止,以下内容对我而言一直有效:XStream xstr…Java将oracle时间戳解析为date.util.date - java

    我想将oracle时间戳(01-MAY-12 01.00.47.000000000 PM)解析为java.util.Date我用这个:Date dateStart=new SimpleDateFormat("yy-MM-dd HH:mm:ss.S").parse("01-MAY-12 01.00.47.000000000 PM&…Java:正则表达式模式匹配器是否有大小限制? - java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

    展开全文
  • java 文件内容替换

    2021-02-12 15:51:35
    /*** * * @Title: replaceContentToFile * @Description: TODO * @param @param path 文件 * @param @param str 开始删除的字符 * @param @param con 追加的文本 * @return void 返回类型 * @thr...
  • 【实例简介】【实例截图】【核心代码】...import java.awt.EventQueue;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io...
  • public class FileModifyTest {public static void main(String[] args) {String filePath = "/Users/mac/Desktop/今日任务/1218-plan.txt";String outPath = "/Users/mac/Desktop/今日任务/1218-plan.txt";...
  • 利用java如何实现读取resource目录下文件发布时间:2020-11-10 16:45:50来源:亿速云阅读:102作者:Leah利用java如何实现读取resource目录下文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编为...
  • [经常碰到朋友,尤其是初学者对指定文件夹指定类型文件的读取很困惑,这里,我把自己经常用的程序贴出来,供初学者学些;#include stdafx.h#include windows.h#include #应用...[比如,要将目录/modules下面所有...
  • 比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做:sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`解释一下:-i 表示inplace edit,就地修改文件-r 表示搜索子目录-l 表示输出匹配的...
  • 本实例实现了制定文本文件的内容替换,并且不需要再编辑其中打开文本文件。思路:先看视图层,要有一个JButton控件用来选择文件,一个JTextField控件显示选中文件的绝对路径,一个JLabel控件提示用户输入搜索文本,...
  • 因此,不需要删除zip条目,只需zip条目的文件替换为另一个条目即可。替换一个Zip文件而不解压缩在Java这是我试过的。public void replaceConfigurationFile(ZipFile zipFile, ZipOutputStream zos, String ...
  • import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;/*** 替换所有文件的内容* @author Administrato...
  • 最近在回头看Java IO的源码,就想着可不可以用java实现一个替换文件中字符串的方法,就像Linux的sed命令那样。在决定做之前,先到网上找了一些资料,可是发现大多数的实现都是把文件的全部内容都load到内存里面,...
  • package utils;import lombok.extern.slf4j.Slf...import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.i...
  • 我有一个名为FormatString.java的文本文件。...问题是我不知道在哪里保存FormatString.java文件。我是否其保存在保存了ReplacingText程序的同一类文件夹中,还是其保存在其他地方。我转到命令提示符,然...
  • 1.java处理word是个大大的坑,无论是poi还是Java2word 都不是尽善尽美。2.poi只能进行简单读操作,Java2word需要调用系统的com接口,系统机必须安装office和动态链接库。3.word从2003版本就可以保存为xml格式,通过...
  • 小编典典作为@assylias答案的补充:如果您使用Java 7,请File完全删除。您想要的是Path。要获得Path与文件系统上的路径匹配的对象,请执行以下操作:Paths.get("path/to/file"); // argument may also be absolute...
  • } } } } 解决方案 If you are using Java 7 or higher and if lineNumber starts in 1, you can do the following: public static void setVariable(int lineNumber, String data) throws IOException { Path path ...
  • 10月24日是程序员节,1024 =210、210既210之意。有些时候需要替换zip内的文件...本案例无需解压的方案,利用 ZipInputStream、ZipOutputStream 实现不解压缩的情况下替换zip内文件。代码如下import java.io.*;import...
  • 实例程序:package ...import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.util.ArrayList;import ja...
  • Java 基础语法在本文中,我们学习如何使用其他项目的实用程序,类和成员。在继续之前,让我们了解一些关键字。类路径类路径是jvm开始执行程序的位置。与传统的动态加载行为类似,当执行Java程序时,Java虚拟机查找...
  • 如果需要从 /Users/xxx/IdeaProjects/xxx-demo/xxx-business-core/target/classes 目录下加载编译好的类,需要先递归出所有的class文件,然后load到JVMpublic static Set> loadClasses(String rootClassPath) ...
  • 替换docx文件里面的 ${} 字符串public class Main {public static void main(String[] args) throws Exception {String template = "C:\\Users\\lzh\\Desktop\\模板.docx";String outSrc = "C:\\Users\\lzh\\Desktop...
  • 我正在尝试编写一个API,用文本文件中的不同字符串替换包含某个子字符串的所有行.我正在使用Java 8流来过滤包含给定模式的行.我有文件写入部分的问题.Files.lines(targetFile).filter(line -> line.contains...
  • 我试图所有数字字零-9替换为字符串中对应的数字0-9.我创建了两个数字单词和数字数组,然后尝试使用替换循环来更改句子.不知道我做错了什么.我正在引用我的getNoDigitWordString方法.import java.util.*;public ...
  • I have a text file where I want to change only the first line of the file. The file could be millions of rows long, so I'd rather not have to loop over everything, so I'm wondering if there is anothe....
  • java替换文件中某一行文本的内容

    千次阅读 2021-02-12 17:24:40
    个人博客 地址:http://www.wenhaofan.com/article/20180913160442代码如下package ...import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputSt...
  • 他假设可以使用单个字符编码完整的内容流从byte []转换为String(所有字符串参数的文本显示运算符都清晰).这个假设是错误的:每个字体可能有自己的编码,因此如果在同一页面上使用多个字体,则显示运算符的不同文本的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 442,250
精华内容 176,900
关键字:

java将目录下的文件替换

java 订阅