在Java中从CSV文件读取多种数据类型

在Java中从CSV文件读取多种数据类型,java,csv,Java,Csv,因此,我想创建一个构造函数,从csv读取一行文件,并将第一个令牌保存到变量中,将其余令牌保存到数组中。这个构造器将在成绩册应用程序中使用,但由于不熟悉txt/文件操作,我的日子不好过 一行将如下所示: 比利·鲍勃,68,79,95,83 我想将代币分为以下几类: name=比利·鲍勃 年级[]=“68,79,95,83” 以下是我目前掌握的代码: import java.io.*; public class gradeBook { public static void main(S

因此,我想创建一个构造函数,从csv读取一行文件,并将第一个令牌保存到变量中,将其余令牌保存到数组中。这个构造器将在成绩册应用程序中使用,但由于不熟悉txt/文件操作,我的日子不好过

一行将如下所示:

比利·鲍勃,68,79,95,83

我想将代币分为以下几类:

name=比利·鲍勃

年级[]=“68,79,95,83”

以下是我目前掌握的代码:

import java.io.*;


public class gradeBook {

    public static void main(String[] args){

        System.out.println("Java Grade Book version 1.0");

        int lineCounter = 0;
        String array[];

        try{
            File data = new   File("/file/path/that/works");
            InputStream f = new FileInputStream(data);
            BufferedReader br = new BufferedReader(new   InputStreamReader(f));

            for (String line = br.readLine(); line != null; line =     br.readLine()) {
                System.out.println(line); // just here to check that the code is working thus far

                //insert code here
                //name should equal first token (which is two names like Billy Bob)
                //grades[] should contain the other double type tokens (e.g. 56,87,89,90)
            }

            br.close();
        }
        catch(Exception e){
            System.err.println("Error: File Couldn't Be Read");
        }
    }
}
我想在文件中循环,以获得存储在文件中的尽可能多的学生,这样我就可以操纵平均成绩。这是一个个人项目,以帮助提高我的发展技能,所以任何帮助,有用的教程链接和提示将不胜感激。但请不要建议像我已经阅读的许多教程那样只使用一种数据类型的简单示例


谢谢你的帮助

将线拆分为一个数组

String[] input = line.split(",");

String variable = input[0];

int[] grades= new int[input.lenght - 2];

for(int i = 1; i < input.length; i++)
{
    grades[i] = input[i];// you might have to do Integer.pareseInt(input[i]);
}
String[]input=line.split(“,”);
字符串变量=输入[0];
int[]等级=新int[input.lenght-2];
for(int i=1;i
我没有在IDE中写这篇文章,但是逻辑应该是正确的。
你会遇到一个新问题。您的成绩册将只包含最后一个条目。尝试使用2D数组表示等级,使用1D数组表示名称;我个人不会使用数组。我会使用arraylist。

将行拆分为一个数组

String[] input = line.split(",");

String variable = input[0];

int[] grades= new int[input.lenght - 2];

for(int i = 1; i < input.length; i++)
{
    grades[i] = input[i];// you might have to do Integer.pareseInt(input[i]);
}
String[]input=line.split(“,”);
字符串变量=输入[0];
int[]等级=新int[input.lenght-2];
for(int i=1;i
我没有在IDE中写这篇文章,但是逻辑应该是正确的。
你会遇到一个新问题。您的成绩册将只包含最后一个条目。尝试使用2D数组表示等级,使用1D数组表示名称;我个人不会使用数组。我会使用arraylist。

所以我还没有测试过用方法或其他任何东西来计算我的代币,但我已经用这段代码将行标记为总和(哈哈,意思是某种程度):

String[] tokens = line.split(",");
            String name = tokens[0];
            String grade1 = tokens[1];
            String grade2 = tokens[2];
            String grade3 = tokens[3];
            String grade4 = tokens[4];

因此,我还没有测试过使用方法或任何其他方法计算我的令牌,但我已经用这段代码将行标记为sum(ha-ha-oops,意思是某种程度):

String[] tokens = line.split(",");
            String name = tokens[0];
            String grade1 = tokens[1];
            String grade2 = tokens[2];
            String grade3 = tokens[3];
            String grade4 = tokens[4];

你实现读取文件了吗?缓冲区读取器和其他一些我在教程中没有发现的我不太理解的东西。我找不到一种确定的方法来标记一行并将标记存储到变量、数组等中。我知道这个问题是为了练习,但仅供参考,在实际工作中,我会使用库来处理此类文件。很高兴知道,谢谢,您是否可以推荐一个教程页面或一本书来学习更多关于Apache Commons的知识?您是否已经开始阅读该文件了?buffer reader和其他一些我在教程中发现的一些我不太理解的东西,这些都没有帮助。我找不到一种确定的方法来标记一行并将标记存储到变量、数组等中。我知道这个问题是为了练习,但仅供参考,在实际工作中,我会使用库来处理此类文件。很高兴知道,谢谢,您是否可以推荐一个教程页或一本书来了解更多有关Apache Commons的信息?谢谢!我要试一试。为什么在这个程序中使用数组列表而不是数组?我只会在我知道将从文件中读取的项目数并且这个数永远不会改变的情况下使用数组。Arraylist会根据需要增长。很好,当这个程序增长时,我一定会实现数组列表。谢谢!我要试一试。为什么在这个程序中使用数组列表而不是数组?我只会在我知道将从文件中读取的项目数并且这个数永远不会改变的情况下使用数组。Arraylist会根据需要增长。很好的一点,当这个程序增长时,我一定会实现数组列表。