Java 读取txt文件并用换行符显示数据

Java 读取txt文件并用换行符显示数据,java,readable,Java,Readable,下面是我读取txt文件的代码,但我似乎无法正确安排文件内容的输出 这是文件内容: venti lador 13男塔吉格语 皮托迪加尔26男帕特罗斯 dony martinez 24男hagonoy 打包测试项目; 导入java.io.BufferedReader; 导入java.io.FileReader; 公共类ReadTextFile{ 公共静态void main(字符串args[])引发异常{ BufferedReader bf=新的BufferedReader(新的文件阅读器(“C://

下面是我读取txt文件的代码,但我似乎无法正确安排文件内容的输出

这是文件内容:

venti lador 13男塔吉格语

皮托迪加尔26男帕特罗斯

dony martinez 24男hagonoy

打包测试项目;
导入java.io.BufferedReader;
导入java.io.FileReader;
公共类ReadTextFile{
公共静态void main(字符串args[])引发异常{
BufferedReader bf=新的BufferedReader(新的文件阅读器(“C://Users/PAO/Desktop/sampletxt.txt”);
弦线;
而((line=bf.readLine())!=null){
字符串[]值=行。拆分(“”);
对于(int x=0;x=5){
System.out.println();
}
系统输出打印(值[x]+“”);
}
}
}
}
输出:

venti lador 13男taguig pito dingal 26男pateros dony martinez 24男哈格诺

期望输出:

venti lador 13男塔吉格语

皮托迪加尔26男帕特罗斯

dony martinez 24男hagonoy


把你的情况改为

if((x + 1) % 5 == 0 || (x == value.length - 1))
这样,它将在每5个数据处跳过一行,或者如果您到达行的最后一个数据

你会有这样的想法:

System.out.print(value[x] + " " );
if((x + 1) % 5 == 0 || (x == value.length - 1))
    System.out.println();

换行不需要if语句,只需将println()放在for循环之后即可

public static void main(String[] args) throws Exception {    
    BufferedReader bf = new BufferedReader(new FileReader("C://Users/PAO/Desktop/sampletxt.txt"));

    String line;

    while((line=bf.readLine())!=null){
        String[] value=line.split(" ");

        for (String value1 : value) {
            System.out.print(value1 + " ");
        }
        System.out.println(""); // Goes to the next line after printing all values
    }
}
如果希望每行有一定数量的值(例如5个),请尝试以下操作:

public static void main(String[] args) throws Exception {    
    BufferedReader bf = new BufferedReader(new FileReader("C://Users/PAO/Desktop/sampletxt.txt"));

    String line;

    int count = 0;
    while((line=bf.readLine())!=null){
        String[] value=line.split(" ");

        for (String value1 : value) {
            System.out.print(value1 + " ");
            count++;

            if (count == 5) { // Five values per line before a line break
                System.out.println("");
                count = 0;
            }
        }
    }
}
如果您只是打印出文件中的内容,我不明白您为什么要执行拆分。在单个空格上拆分,然后在每个值之间用空格打印出值。只需打印从文件中读取的行

public static void main(String[] args) throws Exception {    
    BufferedReader bf = new BufferedReader(new FileReader("C://Users/PAO/Desktop/sampletxt.txt"));

    String line;
    while((line=bf.readLine())!=null){
        System.out.println(line);
    }
}

看来他想那样做。我的意思是,每x数量的项目打印一个换行符。@matinikestugante我的编辑应该会给你想要的东西。如果你想要每行5个值,那么使用for循环计数器有点困难。假设从文件中读取的第一行有3个值。到目前为止,您已经在一行上打印了3个值。然后从文件中读取的下一行有5个值,最后将这5个值写入前3个值所在的同一行。这就是你想要的吗?如果没有,你应该用一个单独的计数器跟踪写在一行上的值的数量。是的,我接受你建议的编辑。顺便说一句,你编写代码的方式很糟糕!谢谢我认为:-)请确保您的问题格式正确,以便我们了解您当前的输出以及您想要的输出。换行符在翻译过程中丢失,几乎无法跟随。执行拆分后,有多少元素的值?您希望所有元素都在同一行上,还是分成多行?您希望每行有多少项?请更清楚地说明您的输入和输出。现在您已经有了“工作”代码,进入sampletxt.txt并将文件中的行拆分为更多行,您还会得到您想要的预期结果吗?让代码正常工作固然好,但更好的做法是理解(为了学习)您可能拥有的其他数据场景,并且代码可以处理所有场景。因此,如果从文件中读取的第一行有3个值,从文件中读取的下一行有5个值?我仍然不认为这会得到OP所需要的,这听起来好像每行都有相同的数值,最后一行可能有LASS值。@ Sal1Er80,新的条件不考虑最后一行。如果一行有3个数据,并且x==2,那么将添加一个换行符。主席先生,当我尝试此操作时,输出仍然没有更改。哦,是的,现在输出是正确的。我很惊讶有这么多的方法来编写代码。
public static void main(String[] args) throws Exception {    
    BufferedReader bf = new BufferedReader(new FileReader("C://Users/PAO/Desktop/sampletxt.txt"));

    String line;
    while((line=bf.readLine())!=null){
        System.out.println(line);
    }
}