当前位置: 首页 > 面试题库 >

在Java中创建,编写和编辑相同的文本文件

宗乐池
2023-03-14
问题内容

假设我有以下代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class EditFile {

    public static void main(String[] args) {

        try{
            String verify, putData;
            File file = new File("file.txt");
            file.createNewFile();
            FileWriter fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write("Some text here for a reason");
            bw.flush();
            bw.close();
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            while( br.readLine() != null ){
                verify = br.readLine();
                if(verify != null){
                    putData = verify.replaceAll("here", "there");
                    bw.write(putData);
                }
            }
            br.close();


        }catch(IOException e){
        e.printStackTrace();
        }
    }

}

我要做的就是在文本文件中写一些东西,在我的例子中是“出于某种原因在这里写一些文本”。然后从文件中读取数据,最后从“有原因的一些文本”中的“有原因的一些文本”中更改文件中的文本。我运行了代码,但是所有发生的事情是在文件“某些原因在这里写”中。

我试图找出代码中可能出什么问题,但不幸的是,这是徒劳的。我非常感谢任何建议或重写。


问题答案:

将您的代码更改为:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class EditFile {

    public static void main(String[] args) {

        try{
            String verify, putData;
            File file = new File("file.txt");
            file.createNewFile();
            FileWriter fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write("Some text here for a reason");
            bw.flush();
            bw.close();
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);

            while( (verify=br.readLine()) != null ){ //***editted
                       //**deleted**verify = br.readLine();**
                if(verify != null){ //***edited
                    putData = verify.replaceAll("here", "there");
                    bw.write(putData);
                }
            }
            br.close();


        }catch(IOException e){
        e.printStackTrace();
        }
    }

}

问题是您要调用br.readLine()两次,这会导致应用程序先读取第1行,然后读取第2行,在您的情况下,您只有一行,这意味着您的程序以条件形式读取了它,并且在将其声明为变量时verify,它正在停止,因为您没有更多数据可读取文件。



 类似资料:
  • 注意:  Typekit 现已更名为 Adobe Fonts,包含在 Creative Cloud 和其他订阅中。了解详情。 关于文本图层 您可以使用文本图层向合成中添加文本。文本图层有许多用途,包括动画标题、下沿字幕、演职员表滚动字幕和动态排版。 您可以为整个文本图层的属性或单个字符的属性(如颜色、大小和位置)设置动画。您可以使用文本动画器属性和选择器创建文本动画。3D 文本图层还可以包含 3D

  • 本文向大家介绍使用Python读写文本文件及编写简单的文本编辑器,包括了使用Python读写文本文件及编写简单的文本编辑器的使用技巧和注意事项,需要的朋友参考一下 学习raw_input和argv是学习读取文件的前提,你可能不能完全理解这个练习,所以认真学习并检查。如果不认真的话,很容易删除一些有用的文件。 这个练习包含两个文件,一个是运行文件ex15.py,一个是ex15_sample.txt。

  • 编辑文本 要选择一种文字图层,请执行下列操作之一: 选择“移动”工具 并在画布上双击文字图层。 选择横排文字工具 或竖排文字工具。在“图层”面板中选择文字图层,或者单击文本流以自动选择文字图层。 在文本中定位到插入点,然后执行下列操作之一: 单击以设置插入点。 选择要编辑的一个或多个字符。 根据需要输入文本。 要将更改应用到文字图层,请执行下列操作之一: 选择一个新工具。 在“图层”面板中单击某个

  • 问题内容: 我真的是Python新手。我目前正在研究使用python创建HTML文件的任务。我了解如何将HTML文件读入python,然后进行编辑和保存。 上一部分的问题在于,它只是替换了整个HTML文件并将字符串放入write()中。如何编辑文件,同时保持其内容完整。我的意思是,写这样的东西,但在 体内标签 我需要自动在打开和关闭正文标签之间插入链接。 问题答案: 您可能想阅读Beautiful

  • 我试图在对话框中创建一个编辑文本框,用于输入密码。当我在做的时候,我不能做。我是这方面的初学者。请帮我做这件事。 形象 我想得到作为

  • 我想在用户在EditText中键入文本时将文本放入我的应用程序中的某个字符串中,并使用它来生动地在活动上显示它(在不同的视图中...) - 就像谷歌的实时/即时搜索工作一样...