Java 使用类读取txt文件

Java 使用类读取txt文件,java,arrays,class,text,java-7,Java,Arrays,Class,Text,Java 7,我现在正在努力创建我的类文件,我有一个txt文件,上面有球队名称,后面是20个击球平均数 更新: 我相信我已经从txt文件中读到了球队的名字,现在读到击球平均数我遗漏了什么 Txt文件: Tars 0.592 0.427 0.194 0.445 0.127 0.483 0.352 0.190 0.335 0.207 0.116 0.387 0.243 0.225 0.401 0.382 0.556 0.319 0.475 0.279 这是我迄今为止的代码。如果您有关于缺少什么或可以做什么

我现在正在努力创建我的类文件,我有一个txt文件,上面有球队名称,后面是20个击球平均数

更新: 我相信我已经从txt文件中读到了球队的名字,现在读到击球平均数我遗漏了什么

Txt文件:

Tars 
0.592
0.427
0.194
0.445
0.127
0.483
0.352
0.190
0.335
0.207
0.116
0.387
0.243
0.225
0.401
0.382
0.556
0.319
0.475
0.279  
这是我迄今为止的代码。如果您有关于缺少什么或可以做什么的输入,请帮助:

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

public class BaseballStats {

private String fileName;
private String teamName;
private double [] battingAverage;


public BaseballStats ( String fileName )
{
this.fileName = fileName;
boolean firstLine = true;
Scanner input = new Scanner(fileName);
while (input.hasNextLine()) {
String line = input.nextLine();
if (firstLine) 
{
  setTeamName (line);
  firstLine = false;
  continue;
}
   int i=0;
     while(input.hasNext())
     {
     battingAverage[i] = input.nextDouble();
    i++;      
}
}
public String getTeamName( )
{
 return teamName;
}

public void setTeamName( String newTeamName )
{
teamName=newTeamName;
}

public double findMaxAverage( )
{
double max =battingAverage[0];
for ( int i =1; i < battingAverage.length; i++)
    {
  if(battingAverage[i] >max)
    max= battingAverage[i];
}
return max;
}
public double findMinAverage( )
{
double min =battingAverage[0];
for ( int i =1; i < battingAverage.length; i++)
{
  if(battingAverage[i] < min)
    min= battingAverage[i];
}
return min;
}    
public double spread( )
{
//returns the difference between the highest and lowest batting averages
}
public int goodPlayers( )
{     
  //returns the number of players with an average higher than .300
}
 public String toString( )
 {  
  // returns a String containing the team name followed by all the batting averages         formatted to three decimal places.
 }
    }
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.ArrayList;
导入java.util.Scanner;
公共类BaseballStats{
私有字符串文件名;
私有字符串teamName;
私人双[]击球平均数;
公共BaseballStats(字符串文件名)
{
this.fileName=文件名;
布尔第一行=真;
扫描仪输入=新扫描仪(文件名);
while(input.hasNextLine()){
String line=input.nextLine();
如果(第一线)
{
设置名称(行);
firstLine=false;
继续;
}
int i=0;
while(input.hasNext())
{
battingAverage[i]=input.nextDouble();
i++;
}
}
公共字符串getTeamName()
{
返回团队名称;
}
public void setTeamName(字符串newTeamName)
{
团队名称=新团队名称;
}
公共双findMaxAverage()
{
双倍最大值=击球平均[0];
对于(int i=1;i最大值)
最大值=击球平均数[i];
}
返回最大值;
}
公共双findMinAverage()
{
双最小值=击球平均值[0];
对于(int i=1;i
使用

Scanner input=new Scanner(new FileInputStream());
while(input.hasNextLine()){
String line=input.nextLine();
....
}
从文件中读取文本行。

这里有一个提示

对于最大和最小平均值,您需要一个类变量来保存该值

还可以查看使用Math.min和Math.max

更新 要读取文件,请创建一个新方法
public void readFile(){…}

在这里

 boolean firstLine = true;
 Scanner input = new Scanner(new FileInputStream(<file>));
 while (input.hasNextLine()) {
    String line = input.nextLine();
    if (firstLine) {
      setTeamName (line);
      firstLine = false;
      continue;
    }

    // convert line to Double
    // perform Math
}
boolean firstLine=true;
扫描仪输入=新扫描仪(新文件输入流());
while(input.hasNextLine()){
String line=input.nextLine();
如果(第一线){
设置名称(行);
firstLine=false;
继续;
}
//将行转换为双行
//表演数学
}

在公共BaseballStats(字符串文件名)中,它去哪里了?你能检查我更新的代码吗,谢谢!我知道怎么做,如何从txt文件中获取数字,这样我就可以做到。我想我把它放错位置了,我不断出错。我也不能在(scan.hasNext()){scan.nextLine()时做;String teamName=scan.next();我更新了代码。你能检查一下这是否正确吗?不。首先我说创建一个新方法(你不希望你的构造函数可能引发异常)。其次,将我的while循环与您的while循环进行比较。我使用了布尔值,因此只为第一行设置了teamName。您几乎丢失了代码的每一部分。您应该阅读一篇关于如何在一般情况下执行此类操作的教程,然后问我们您是否对其中的某个特定部分有问题。我知道我丢失了代码的每一部分,我希望如此关于如何创建一个类文件来读取球队名称和击球平均数的帮助,一旦我有了,我将能够自己完成其余的代码。这不是你的问题吗,这是问同样的问题吗?是的,你是对的,我再次发布我的道歉,我需要更多的帮助
 boolean firstLine = true;
 Scanner input = new Scanner(new FileInputStream(<file>));
 while (input.hasNextLine()) {
    String line = input.nextLine();
    if (firstLine) {
      setTeamName (line);
      firstLine = false;
      continue;
    }

    // convert line to Double
    // perform Math
}