如何将文件读入Java对象

如何将文件读入Java对象,java,object,Java,Object,我真的不理解这个问题背后的逻辑,因此,我不能真正准确地搜索这样的东西是否已经存在 假设我为一个对象创建了一个Java类。它只包含实例变量、getter/setter和用于创建空对象的构造函数。例如: public class Bicycle { private int speed; private String model; public Bicycle(int speed, String model) { this.speed = speed; thi

我真的不理解这个问题背后的逻辑,因此,我不能真正准确地搜索这样的东西是否已经存在

假设我为一个对象创建了一个Java类。它只包含实例变量、getter/setter和用于创建空对象的构造函数。例如:

public class Bicycle {
    private int speed;
    private String model;

    public Bicycle(int speed, String model) {
    this.speed = speed;
    this.model = model;
    }

    public int getSpeed() {
        return speed;
    }

    public void setSpeed() {
        this.speed = speed;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
}
public static String searchBikes(int speed, String model) {
    if (Bicycle bike.getSpeed().equals(speed) && etc. etc.
现在让我们假设我有一个自行车的文本文件,比如:

123460自行车

33350号自行车

自行车555,20

如何读取文件,然后将文本文件的每个部分分配给Bicycle.java中的变量

我希望能够在其他方法中使用getter和setter。例如:

public class Bicycle {
    private int speed;
    private String model;

    public Bicycle(int speed, String model) {
    this.speed = speed;
    this.model = model;
    }

    public int getSpeed() {
        return speed;
    }

    public void setSpeed() {
        this.speed = speed;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
}
public static String searchBikes(int speed, String model) {
    if (Bicycle bike.getSpeed().equals(speed) && etc. etc.

我不确定如何将文本文件中的每个自行车分配给bicycle类中的变量。我需要另一个类(比如数据库)吗?我只是对这件事很迷茫

现在最好的方法是java序列化,您可以为自行车定义一个人类可读的数据结构,并尝试将其转换为POJO(普通的旧java对象),其中一个选项是使用Json格式,它很容易读取,并且有许多API用于转换字符串(子对象到POJO),等等

文件的json表示形式可以是:

{
  "speed": 33,
  "model": 50
}
通过这些信息,您可以获得一个类Bicycles的实例,其中的属性model和speed与“普通”java对象中的属性model和speed一样可用

查看和教程…

您应该阅读更多关于“类和对象”的内容,以全面了解什么是类以及什么是类对象的实例

Oracle的网站可以是一个良好的开端

关于您的具体问题,既然我们讨论了面向对象编程,为什么不直接复制真实世界的模型呢?自行车是哪里制造的?在工厂里,使用某种规格,让我们称之为蓝图

例如,您可以使用一个名为“createBycicles(文件蓝图)”的方法创建一个名为BycicleFactory的类,该方法返回一个ArrayList。下面是有关称为Factory design模式的设计模式(最佳实践)的更多信息

在工厂内,您必须读取文件(蓝图)并在每行创建一个新的Bycicle对象。我建议你用扫描仪,因为这是最容易的

Scanner fileScan=new Scanner(新文件(“yourfile.txt”);
List bikes=new ArrayList();
while(fileScan.hasNextLine()){
String[]line=fileScan.nextLine().split(“,”);
自行车=新自行车(第[1]行,第[0]行);
bikes.add(bike);
}

文件中的自行车现在位于自行车列表中。

您需要了解一种方法,即读取文件,迭代文件的每一行,解析每一行的值,使用这些值创建对象的实例,并将该实例添加到实例集合中。