【发布时间】:2013-03-25 00:53:46
【问题描述】:
我正在努力完成一个项目,但没有运气。这是一门在线课程,所以我唯一的交流方式是通过电子邮件。在过去的五天里,他还没有回复我的四封电子邮件。
因此,对于这项任务,我们必须下载一个包含特定公司纳斯达克股票价格信息的 csv 文件。我选择了 GOOG(谷歌)。以下是代码部分的要求。
创建第二个文件 ReadFiles.java。这是将从您的 csv 文件中读取数据的文件。注意:您需要使用较小版本的数据文件(20 行)进行测试。 您的 ReadFiles.java 类需要以下方法:
方法:检查文件是否存在
方法:在csv文件中查找行数
方法:将csv文件转换为多维数组
方法:打印数组
方法:使用get方法返回数组
创建一个文件 DataAnalyzer.java。该文件将用于调用 ReadFiles.java 中的方法。请务必证明您的所有方法都可以通过 DataAnalyzer.java 工作。
这是我目前所拥有的。
package Analysis;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.StringTokenizer;
import java.util.Scanner;
public class ReadFiles
{
public static int numberOfRows;
public static int rowNumber = 0;
public static int columnNumber = 0;
public static void main(String[] args)
{
Scanner kb = new Scanner (System.in);
String fileName;
System.out.print("Enter the file name >> ");
fileName = kb.nextLine();
File f = new File("D:\\Java\\Assignment 3\\" + fileName);
if(f.exists())
{
System.out.print("File exists.");
}
fileName="D:\\Java\\Assignment 3\\" + fileName;
try
{
BufferedReader br = new BufferedReader(new FileReader(fileName));
StringTokenizer st = null;
while((fileName = br.readLine()) != null)
{
rowNumber++;
numberOfRows++;
st = new StringTokenizer(fileName, ",");
while(st.hasMoreTokens())
{
columnNumber++;
System.out.println("Row " + rowNumber +
", Column " + columnNumber
+ ", Entry : "+ st.nextToken());
}
columnNumber = 0;
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void rows()
{
System.out.println("Total Rows: " + numberOfRows);
}
}
我们为这门课程提供的书没有帮助。所有“示例”和“你做”部分都会出错。同样在整章中,这个赋值是基于,没有提到一个数组。
当我运行此代码时,我没有收到任何错误。显示如下:
File exists.
Row 1, Column 1, Entry : 30/12/2011
Row 1, Column 2, Entry : 642.02
Row 1, Column 3, Entry : 646.76
Row 1, Column 4, Entry : 642.02
Row 1, Column 5, Entry : 645.9
Row 1, Column 6, Entry : 1782300
Row 1, Column 7, Entry : 645.9
Row 2, Column 1, Entry : 29/12/2011
Row 2, Column 2, Entry : 641.49
我从第 1 行到第 19 行(整个文件)显示。
我不明白的是如何在这个类中创建单独的方法来转换为数组,打印数组并返回数组。
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
在我看来,您需要了解一些 Java 编程基础知识:docs.oracle.com/javase/tutorial,这个问题对于 StackOverflow 来说太宽泛了
-
看看 openCSV opencsv.sourceforge.net 非常适合 csv 文件
标签: java csv multidimensional-array