Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在读写文本文件中,我必须打印文本文件中的所有数据,但它只打印最后一行如何获得所有行写入_Java - Fatal编程技术网

Java 在读写文本文件中,我必须打印文本文件中的所有数据,但它只打印最后一行如何获得所有行写入

Java 在读写文本文件中,我必须打印文本文件中的所有数据,但它只打印最后一行如何获得所有行写入,java,Java,读写课文。 在读写文本文件中,我必须打印文本文件中的所有数据,但它只打印最后一行如何获得所有行写入。 节目: 主要问题的答案是,您只看到最后一行,因为每次写入.txt文件时,您都会创建一个新的BufferedWriter,当您这样做时,它会删除.txt文件中已有的文本。要解决此问题,只需在while循环外部声明BufferedWriter: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.I

读写课文。 在读写文本文件中,我必须打印文本文件中的所有数据,但它只打印最后一行如何获得所有行写入。 节目:


主要问题的答案是,您只看到最后一行,因为每次写入.txt文件时,您都会创建一个新的BufferedWriter,当您这样做时,它会删除.txt文件中已有的文本。要解决此问题,只需在while循环外部声明BufferedWriter:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.io.FileReader;
import java.io.FileWriter;
public class fs{

    public static void main(String[] args){
        StringTokenizer str;
        try
        {
            BufferedReader in = new BufferedReader(new FileReader("C:/Users/madhan kumar/Desktop/read.txt"));
            BufferedWriter bw = new BufferedWriter (new FileWriter("out.txt"));
            String s;
            while((s=in.readLine())!=null){
                str = new StringTokenizer(s, "|");
                String name = str.nextToken();
                String age = str.nextToken();
                String sex = str.nextToken();
                String field = str.nextToken();
                System.out.println("Name:  "+name+"\tAge:  "+age+"\tSex:  "+sex+"\tField:  "+field);
                bw.write("Name:  "+name+"\tAge:  "+age+"\tSex:  "+sex+"\tField:  "+field);
            }
            bw.close();
        }catch(IOException e){
            e.printStackTrace();
        }

    }
}

我做了一些小的调整,最大的一点是我使用了StringTokenizer,它的功能与您的拆分方法几乎相同,但更有说服力。

请不要使用与您的问题无关的标记。语言标记垃圾,没有明确的问题,格式不好的代码——这不是一个好的开始。请浏览、和部分,看看这个网站是如何工作的。我看到的第一个问题是,在类主体中直接有语句,而不是在方法中。我看到的第二个问题是在调用
catch
之前没有关闭
try
块。一个样式问题是没有正确缩进,没有使用正确的命名实践,类是TitleCase,变量/方法是camelCase。对不起,请澄清您的问题好吗?
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.io.FileReader;
import java.io.FileWriter;
public class fs{

    public static void main(String[] args){
        StringTokenizer str;
        try
        {
            BufferedReader in = new BufferedReader(new FileReader("C:/Users/madhan kumar/Desktop/read.txt"));
            BufferedWriter bw = new BufferedWriter (new FileWriter("out.txt"));
            String s;
            while((s=in.readLine())!=null){
                str = new StringTokenizer(s, "|");
                String name = str.nextToken();
                String age = str.nextToken();
                String sex = str.nextToken();
                String field = str.nextToken();
                System.out.println("Name:  "+name+"\tAge:  "+age+"\tSex:  "+sex+"\tField:  "+field);
                bw.write("Name:  "+name+"\tAge:  "+age+"\tSex:  "+sex+"\tField:  "+field);
            }
            bw.close();
        }catch(IOException e){
            e.printStackTrace();
        }

    }
}