当前位置: 首页 > 知识库问答 >
问题:

使用scanner从Java文本文件中获取和存储变量

和丰羽
2023-03-14
id=1 name=biology instructor=John Smith room=2

Java文件

public class Subject {
   Integer id;
   String name;
   String instructor;
   Integer room;

   public void importSubject() throws IOException{
   //gets data from file and places it into variable
      File list = new File("subjects.txt");
      Scanner reader = new Scanner(list);
      while (reader.hasNextLine()) {
        String [] data = reader.newLine.split("=");
        this.id = Integer.parseInt(data[0]);
        this.name = data[1];
        this.instructor = data[2];
        this.room = Integer.parseInt(data[3]);
      }
   } 
}

共有1个答案

秦宏硕
2023-03-14

假设文件的内容总是按照“id”、“name”、“instructor”、“room”的顺序排列,那么实现这一点的一种方法就是为扫描器使用自定义分隔符:

Scanner reader = new Scanner(list);
reader.useDelimiter("\\s*(id|name|instructor|room)=");

id=name=instructor=room=(包括前导空格)都与分隔符模式\s*(idnameinstructorroom)=匹配,因此扫描程序将只给我们这些分隔符之间的标记,它们是:

  • 1
  • 生物学
  • 约翰·史密斯
  • 2
if (reader.hasNextLine()) {
    this.id = reader.nextInt();
    this.name = reader.next();
    this.instructor = reader.next();
    this.room = reader.nextInt();
}
public static List<Subject> readSubjects() throws IOException {
    File list = new File("subjects.txt");
    Scanner reader = new Scanner(list);
    ArrayList<Subject> list = new ArrayList<>();
    while (reader.hasNextLine()) {
        Subject newSubject = new Subject();
        newSubject.id = reader.nextInt();
        newSubject.name = reader.next();
        newSubject.instructor = reader.next();
        newSubject.room = reader.nextInt();
        list.add(newSubject);
    }
    return list;
}
 类似资料:
  • 我可以从SVG中的文本标记获取文本。我正在附加HTML 我想得到的是

  • 问题内容: 我正在研究一个Java程序,该程序逐行读取文本文件,每个文本文件都有一个数字,将每个数字都将其扔到数组中,然后尝试使用插入排序对数组进行排序。我需要有关程序读取文本文件的帮助。 我收到以下错误消息: 我的“ src”,“ bin”和主项目文件夹中有.txt文件的副本,但仍找不到该文件。我正在使用Eclipse。 问题答案: 你必须把文件扩展名放在这里

  • 问题内容: 有什么方法可以读取文本文件并将内容存储在Jtable中?我有一个文本文件,其中包含有关某些过程的某些信息。就像一个具有列和各自值的表。是否可以获取.txt文件的内容并以Jtable的形式显示?我正在使用Eclipse和Window Builder。任何帮助将不胜感激。谢谢! 问题答案: 我将研究Oracle的教程: 读/写文本文件 JTable教程 当从文本文件中获取数据时,您需要将其

  • 我有一些pdf文件,使用pdfbox我已经将它们转换为文本并存储到文本文件中,现在我要从文本文件中删除它们 超链接 我希望按如下方式逐行获取有效文本: 我们提出了一种从纯文本中提取的多词概念词进行本体学习的方法OntoGain。OntoGain遵循一个由不同处理层定义的本体学习过程。在普通术语提取的基础上,通过对提取的概念进行聚类,形成概念层次结构。然后,衍生术语“分类法”将丰富非分类关系。已经研

  • 问题内容: 我需要在存储过程中读入由SSIS包创建的日志文件。 有什么好方法吗? 我尝试使用此代码,但将文件内容显示为乱码。有没有解决的编码问题?有没有更简单的方法? 问题答案: 您是否尝试过将笔直插入?例如:

  • 我有一个列表。pdf,ppt,pptx,xls,xlsx,doc和。docx文件,现在想在这些文件中查找电子邮件地址。我的问题是如何从这些文件中智能地提取计划文本。目前我正在使用Apache POI,我对每种类型的文件都有一个单一的方法,是否有一个更短、更优雅的位置来做这件事?也许还可以处理。ODT、.ODP、.ODS文件?如何从。pdf,ppt,pptx,xls,xlsx,doc和.docx文件