在java中创建,编写和编辑相同的文本文件 [英] Creating, writing and editing same text file in java

查看:145
本文介绍了在java中创建,编写和编辑相同的文本文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  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.txt);
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(某些文本出于某种原因);
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();

$ b} 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.txt);
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(某些文本出于某种原因);
bw.flush();
bw.close();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr); ((verify = br.readLine())!= null){// *** editted
// ** deleted ** verify = br.readLine(); *

*
if(verify!= null){// ***编辑
putData = verify.replaceAll(here,there);
bw.write(putData);
}
}
br.close();

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



$ b code
$ b $ p
$ b

是你正在调用 br.readLine()两次,这引起应用程序读取line1,然后line2,在你的情况下,你只有一行,这意味着你的程序读它在条件形式,当它来声明它的变量验证,它停止,因为你没有更多的数据来读取你的文件。


Let's say I have the following code:

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();
        }
    }

}

All I wanted to do was to write something in a text file, in my case "Some text here for a reason". Then to read data from my file, and finally to change my text from my file from "Some text here for a reason" in "Some text there for a reason". I ran the code but all it happens is to write in my file "Some text here for a reason".

I tried to figure out what could be wrong in my code, but unfortunately it was in vain. Any advice or rewrite is highly appreciated from me.

解决方案

Change your code to that:

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();
        }
    }

}

The Problem is that you are calling br.readLine() twice which is provoking the application to read line1 and then line2 and in your case you have just one line which means that your program read it in the conditional form and when it comes to declaring it to the variable verify, it is stopping because you don't have anymore data to read your file.

这篇关于在java中创建,编写和编辑相同的文本文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆