Java 如何从文件中读取数据并创建对象并将其分配给数组?

Java 如何从文件中读取数据并创建对象并将其分配给数组?,java,object,geometry,java.util.scanner,Java,Object,Geometry,Java.util.scanner,GeometricObjectsData.txt “CIRCLE”, 1, “blue”, true “RECTANGLE”, 1, 2, “blue”, true “RECTANGLE”, 10, 2, “red”, true “CIRCLE”, 2, “green” “RECTANGLE” “CIRCLE” 驱动程序:我对如何将上述信息传输到一个对象中,然后将其分配到一个数组感到有点困惑 import java.io.File; import java.io.FileNotFoundExc

GeometricObjectsData.txt

“CIRCLE”, 1, “blue”, true
“RECTANGLE”, 1, 2, “blue”, true
“RECTANGLE”, 10, 2, “red”, true
“CIRCLE”, 2, “green”
“RECTANGLE”
“CIRCLE”
驱动程序:我对如何将上述信息传输到一个对象中,然后将其分配到一个数组感到有点困惑

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

public class Driver {
public static void main(String[] args) throws FileNotFoundException {
    Scanner input = new Scanner(new File("C:/Users/Charles/Desktop/GeometricObjectsData.txt"));

    ArrayList<GeometricObject> list = new ArrayList<GeometricObject>();

    while (input.hasNext()) {
        String line = input.nextLine();
        System.out.println(line);
    }
  }
}

我还创建了另外3个类,称为GeometricObject、Circle和Recetangle,如果您想查看它们的代码的话。上面的信息表示图形的类型以及给定的半径、长度、宽度、颜色和填充参数。

正如microsby0所说,您可能可以将原始单词拆分为数组。我不相信有一种简单的方法可以直接将一个原始单词转换成一个类名CircleCircle不起作用,我相信这会让你感到困惑。您应该将每个数组读入某些参数并进行处理:

/*代码中的其他地方:*/ShaperRay[i]=convertarray[0],array[1],…//其中i是循环中的某个增量值

Convert可以返回一个可以指定给形状数组的形状。您始终可以使用来处理不同的输入。

PSUEDOCODE用于:

我可能不会用扫描仪,但是

BufferedReader buffer = new BufferedReader(new FileReader(file));
那你会的

//这将把每行的文本分割成一个数组

String buf[]= null;
    while ((line = buffer.readLine()) != null) {

        resultLine += line + ";";
        buf = resultLine.split(";");

    }
    buffer.close();
Object result[] = new Object[100];
result[0] = circle;
然后循环通过数组buf和do

if(buf[i].startsWith("C")) 
然后使用,在buf[i]上进行另一次拆分,拆分成另一个数组,如字符串arr[]

arr = buf[i].split(",");
但是Circle类中第二个数组的元素

Circle circle = new Circle(arr[0],arr[1],etc 
然后添加到数组中

String buf[]= null;
    while ((line = buffer.readLine()) != null) {

        resultLine += line + ";";
        buf = resultLine.split(";");

    }
    buffer.close();
Object result[] = new Object[100];
result[0] = circle;

我们很可能需要其他类,但请尝试在读入的每一行上使用line.split,以获得所需值的数组。然后使用这些值创建对象。你有什么错误、问题吗?请提供更多关于您所面临问题的信息