【问题标题】:Reading file and defining lines and elements?读取文件并定义行和元素?
【发布时间】:2014-10-17 05:21:39
【问题描述】:

我正在尝试将行分配给大写字母,将列分配给小字母,但第二个 while 语句由于某种原因没有打印任何内容

我尝试将行分配给数字,但无法将 int 分配给字符串。

Txt 文件由(行间没有空格)组成

ABCDEFGHIJKLMNOPQRSTUVWXYZ

ABCDEFGHIJKLMNOPQRSTUVWXYZ

ABCDEFGHIJKLMNOPQRSTUVWXYZ

ABCDEFGHIJKLMNOPQRSTUVWXYZ

ABCDEFGHIJKLMNOPQRSTUVWXYZ

如果给定特定的行和列,是否可以更改元素?

import java.io.*;
import java.util.*;

public class ReadFile {
    private Scanner Reader;
    Scanner Vari = new Scanner(System.in);
    public void openfile(){
        try {
            System.out.print("Enter file location");
            String y = Vari.nextLine();
            Reader = new Scanner(new File(y));
        }catch(Exception e){
            System.out.println("Error!!");
        }
    }
    public void readFile(){
        while(Reader.hasNextLine()){
            String a = Reader.nextLine();
            String b = Reader.nextLine();
            String c = Reader.nextLine();
            String d = Reader.nextLine();
            String e = Reader.nextLine();
            System.out.printf("This is the LINE PRint\n");
            System.out.printf("%s\n%s\n%s\n%s\n", a, b, c, d,e);
            break;
        }
        while(Reader.hasNext()){
            String A = Reader.next();
            String B = Reader.next();
            String C = Reader.next();
            String D = Reader.next();
            String E = Reader.next();
            System.out.printf("\nCharacter Print ");
            System.out.printf("%s\n%s\n%s\n%s\n", A, B, C, D,E);
            break;
            }
            
        }

    public void close(){
        Reader.close();
    }

}

【问题讨论】:

  • 你能显示你的预期结果吗
  • 您可以通过FileUtils::readLines轻松将文件内容读入List<String>。
  • @getlost 没有打印结果,我只是想将行分配给行,将列分配给字符。例如,如果我想打印或更改第一行和第三列,它将是 [b][C]
  • @Alexander_Winter 如果我理解正确,它会读取行并可以分配它们,但不会分配行内的字符
  • @Ankosh 我不明白“Txt 文件由以下内容组成:*行间没有空格”这一行。你能显示文本文件吗

标签: java arrays file


【解决方案1】:

您的代码中有许多简单的错误,但仔细阅读它们,您的第二个while 循环没有打印任何内容的基本原因是因为您已经浏览了文本文件并到达了结尾。您需要一些方法来重置文件指针或缓冲区,或者关闭并重新打开一个全新的Scanner。

通过初始化两次来纠正这个问题,并纠正小错误,这是工作代码。问题是,这就是你想要达到的目标吗?

stackoverflow.txt:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ

StackOverflow.java:

import java.io.FileNotFoundException;
import java.util.Scanner;

public class StackOverflow
{
    public static void main( String[] args ) throws FileNotFoundException
    {
        new StackOverflow("stackoverflow.txt").readNextLines().close();
        System.out.println();
        new StackOverflow("stackoverflow.txt").readNexts().close();
    }

    private Scanner reader;

    public StackOverflow(String filename) throws FileNotFoundException {
        reader = new Scanner( StackOverflow.class.getResourceAsStream( filename ) );
    }

    public StackOverflow readNextLines()
    {
        while (reader.hasNextLine())
        {
            String a = reader.nextLine();
            String b = reader.nextLine();
            String c = reader.nextLine();
            String d = reader.nextLine();
            String e = reader.nextLine();
            System.out.printf( "This is the LINE print\n" );
            System.out.printf( "%s\n%s\n%s\n%s\n%s\n", a, b, c, d, e );
            break;
        }
        return this;
    }

    public StackOverflow readNexts()
    {
        while (reader.hasNext())
        {
            String A = reader.next();
            String B = reader.next();
            String C = reader.next();
            String D = reader.next();
            String E = reader.next();
            System.out.printf( "Character Print\n" );
            System.out.printf( "%s\n%s\n%s\n%s\n%s\n", A, B, C, D, E );
            break;
        }
        return this;
    }

    public void close()
    {
        reader.close();
    }
}

输出:

This is the LINE print
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Character Print
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-04
    • 2013-08-27
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2011-07-20
    相关资源
    最近更新 更多