Java 将文本文件拆分为数组

Java 将文本文件拆分为数组,java,arrays,file,split,Java,Arrays,File,Split,我有一个文本文件,格式如下: ID FName LName City Age ; 22333;Giannis;Georgakopoulos;Patisiwn, Athens;42 22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34 84567;Konstantinos;Santorinaios;Karaiskaki 44, Patisia;29 我想阅读文本并将第一个元素(ID、FName、LName、City、Age)添加到编码到数组中。在这

我有一个文本文件,格式如下:

ID
FName
LName
City
Age
;
22333;Giannis;Georgakopoulos;Patisiwn, Athens;42
22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34
84567;Konstantinos;Santorinaios;Karaiskaki 44, Patisia;29 
我想阅读文本并将第一个元素(ID、FName、LName、City、Age)添加到
编码到数组中。在这之后,我想把剩下的放进另一个。
最后我想把它们放到一个数组中,格式如下:

ID    FName   LName          City             Age
22333;Giannis;Georgakopoulos;Patisiwn, Athens;42
22222;Maria;Nikolakopoulou;Kabalas 33, Aigaleo;34
84567;Kostas;Santorinaios;Karaiskaki 44, Patisia;29
我已开始使用以下代码,但无法完成它

public static void main(String[] args) throws Exception {

    BufferedReader br = new BufferedReader(new FileReader(".../testing"));
    String line = null;
    String[] pinakas=new String[6];

    int i=0;
    while (!(line=br.readLine()).equals(";")) {
         pinakas[i] = line;
         i++;

        System.out.println(line);
    }
    br.close();
}

让我试着给你一点指示

List<Person> list = new ArrayList<Person>();
String line;
try (
    // open an input stream
    InputStream fileInputStream = new FileInputStream("".../testing"");

    // read file as UTF-8
    InputStreamReader reader = new InputStreamReader(fileInputStream, Charset.forName("UTF-8"));

    // open a BufferedReader to read line-by-line
    BufferedReader br = new BufferedReader(reader);
) {
    while ((line = br.readLine()) != null) {
        // split the `line` on ";"
        // [0] - ID    
        // [1] - FName   
        // [2] - LName          
        // [3] - City             
        // [4] - Age
        String[] objects = line.split(";");
        int ID = Integer.parseInt(objects[0]);
        String fName = objects[1];
        String lName = objects[2];
        String city = objects[3];
        int age = Integer.parseInt(objects[4]);
        list.add( new Person(ID, fName, lName, city, age) );
    }
}

System.out.println(list);
在lin中逐行读取打开的文件。创建一个名为
Person
的对象是一个好主意,它将ID、FName、LName、City和Age作为字段。然后,您可以为文件中的每一行创建一个新的
列表
条目

这有帮助吗?

字符串数据=null;
String data = null;

try {

    BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
    while ((data = bufferedReader.readLine()) != null) {
        String[] tempData = data.split("\t");
        for (int j = 0; j <= 4; j++) {
            dataFromFile[totalRecords][j] = (int) Float.parseFloat(tempData[j]);
        }
        totalRecords++;
    }
} catch (FileNotFoundException ex) {
    System.out.println("file not found");
} catch (IOException ex) {
    System.out.println("error in opening file");
}
试一试{ BufferedReader BufferedReader=新的BufferedReader(新文件读取器(文件名)); 而((data=bufferedReader.readLine())!=null){ 字符串[]tempData=data.split(“\t”);
对于(int j=0;j)您是否考虑过创建?您需要更精确地描述您所面临的问题。那么,您的代码有什么问题?是什么阻止了您完成它?请查看以下内容:提示:使用
扫描仪
——为什么是“有人能帮我吗?”不是一个实际的问题?您需要更精确地描述您所面临的问题。那么,您的代码有什么问题?是什么阻止了您完成它?----我的问题是,我可以用第一个元素(直到“;”)填充数组,但我找不到读取文件其余部分的方法(在第一个“;”)之后)然后把每一行从那里放到一个新的(或不是)数组中,这样之后就有机会匹配两个数组…如果你有另一个实现这一点的想法,我很乐意听到…你为什么像UT-8一样阅读它?…我用split尝试过这个“;”但是我找不到一种方法来得到我想要的结果。我如何设置其余的ID是数字(22333等)等等?你需要使用
,而不是“;”(没有空格);UTF-8,因为您似乎不需要比这更大的东西。@cseKostas让我用实际使用的东西来更新它OOP@cseKostas完成!查看:)天哪…多谢了,伙计..我找到了一种方法,用2个while循环和3个ArrayList(一个用于标题,一个用于其余元素…还有一个同时使用这两个元素…)…我现在是电话用户,我无法上传代码,但非常感谢!!首先,非常感谢您的时间。但我有一个“例外”指出这行“dataFromFile[totalRecords][j]=(int)Float.parseFloat(tempData[j]);”…我对您的代码所做的唯一更改是设置“int totalRecords=0;”int[]dataFromFile=null;“for循环”之前.你知道我为什么会有这个问题吗?也许我的想法是错误的..你有任何关于用另一种方法来实现我想要的目标的建议吗?你面临的问题是什么?哪种异常?我可以有堆栈跟踪吗?在目前的代码中,你试图将数据转换为浮点可能就是这个问题。尝试更改它。P请清楚地说明问题。问题是“totalRecords”和“dataFromFile”无法解析为一个变量……请记住,我需要一个java程序,它将以我给出的格式接收任何txt文件,并返回(输出)第一行将具有的数组(id、fname、lname、adress、age-->每一个都在单独的列中)在这些名字下面放上我之前给过的元素,比如(12231,giannis,papadopoulos,karaiskaki 32,45等等)…如果我不能更具体的话,很抱歉..我是java编码新手..dataFromFile[totalRecords][j]=tempData[j];尝试在for循环中使用这一行。这里我们尝试读取第一行,根据空格将其拆分,并将其读入2×2数组数据fromfile[][]。请声明并初始化此数组。
String data = null;

try {

    BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
    while ((data = bufferedReader.readLine()) != null) {
        String[] tempData = data.split("\t");
        for (int j = 0; j <= 4; j++) {
            dataFromFile[totalRecords][j] = (int) Float.parseFloat(tempData[j]);
        }
        totalRecords++;
    }
} catch (FileNotFoundException ex) {
    System.out.println("file not found");
} catch (IOException ex) {
    System.out.println("error in opening file");
}