Java 如何从txt文件执行代码

Java 如何从txt文件执行代码,java,Java,我需要使用.txt文件从文本文件执行以下代码。我在文件中使用扫描仪时遇到问题b.txt中有以下文本输入: 40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9 有人能帮我解决这个问题吗 import java.util.*; public class arrayLabFirst { public static void main(String[] args) { double[ ] temperatures = new doub

我需要使用
.txt
文件从文本文件执行以下代码。我在文件中使用扫描仪时遇到问题
b.txt
中有以下文本输入:


40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9

有人能帮我解决这个问题吗

  import java.util.*;
  public class arrayLabFirst
  {

  public static void main(String[] args)
  {
  double[ ] temperatures = new double[10];
  Scanner inFile = new Scanner(new File(“b.txt”)); 

  temeratures[]=infile.hasNext();


  for (int index = 0; index < temperatures.length; index++)
  temperatures[index] = input.nextDouble();

  printArray(temperatures);
  System.out.println("The average of the temperatures entered is: " + arrayAverage(temperatures));
  System.out.println("The greatest temperature is: " + greatest(temperatures));
  System.out.println("The lowest temperature is: " + lowest(temperatures));
  }
  public static void printArray(double[] temperatures)
  {
  for (int i = 0; i < temperatures.length; i++)
  System.out.println(temperatures[i]);
  }
  public static double arrayAverage(double[] temperatures)
  {
  double sum = 0;
  for (int i = 0; i < temperatures.length; i++)
  sum += temperatures[i];
  return sum/temperatures.length;
  }
  public static void countDays(double[] temperatures)
  {
  int aboveCount = 0;
  int belowCount = 0;
  for (int i = 0; i < temperatures.length; i++)
  {
  if (i > 32)
    aboveCount++;
  else
    belowCount++;
  }
 System.out.println("number of days above freezing: " + aboveCount);
 System.out.println("number of days below freezing: " + belowCount);
 }
public static double greatest(double[] temperatures)
{
int maxIndex = 0;
for (int index = 1; index < temperatures.length; index++)
  if (temperatures[maxIndex] < temperatures[index])
  maxIndex = index;

return temperatures[maxIndex];
}
public static double lowest(double[] temperatures)
{
  int minIndex = 0;
  for (int index = 1; index < temperatures.length; index++)
  if (temperatures[minIndex] > temperatures[index])
  minIndex = index;

  return temperatures[minIndex];
}
}
import java.util.*;
公共类arrayLabFirst
{
公共静态void main(字符串[]args)
{
双[]温度=新双[10];
扫描仪内嵌=新扫描仪(新文件(“b.txt”);
temeratures[]=infle.hasNext();
对于(int index=0;index32)
计数++;
其他的
低于计数++;
}
System.out.println(“冻结以上天数:+计数以上”);
System.out.println(“冻结以下天数:+低于计数”);
}
公共静态双最高温度(双[]温度)
{
int maxIndex=0;
对于(int index=1;index温度[index])
minIndex=指数;
返回温度[minIndex];
}
}

我并不真正理解所有的负面影响,但让我快速解释一下他们在说什么。您在infle上使用的是hasNext()方法,该方法返回一个关于is是否具有“next”值的布尔值。在本例中,它检查是否有下一个双精度。问题是您为该布尔值分配了一个双精度数组,而这是无法做到的

下面是我的工作,使用你的代码

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
public class arrayLabFirst
{
    public static void main(String[] args) throws FileNotFoundException
    {
        double[ ] temperatures = new double[10];
        Scanner inFile = new Scanner(new File("data.txt")); 
        for (int index = 0; index < temperatures.length; index++)
            if(inFile.hasNext())
                temperatures[index] = inFile.nextDouble();
            else
                continue;

        printArray(temperatures);
        System.out.println("The average of the temperatures entered is: " + arrayAverage(temperatures));
        System.out.println("The greatest temperature is: " + greatest(temperatures));
        System.out.println("The lowest temperature is: " + lowest(temperatures));

        inFile.close();
    }
    public static void printArray(double[] temperatures)
    {
        System.out.print("Input Array:\n[");
        for (int i = 0; i < temperatures.length; i++)
        {
            System.out.print(temperatures[i]);
            if(i < temperatures.length - 1)
            {
                System.out.print(", ");
            }
        }
        System.out.println("]\n");
    }
    public static double arrayAverage(double[] temperatures)
    {
        double sum = 0;
        for (int i = 0; i < temperatures.length; i++)
            sum += temperatures[i];
        return sum/temperatures.length;
    }
    public static void countDays(double[] temperatures)
    {
        int aboveCount = 0;
        int belowCount = 0;
        for (int i = 0; i < temperatures.length; i++)
        {
            if (i > 32)
                aboveCount++;
            else
                belowCount++;
        }
        System.out.println("number of days above freezing: " + aboveCount);
        System.out.println("number of days below freezing: " + belowCount);
    }
    public static double greatest(double[] temperatures)
    {
        int maxIndex = 0;
        for (int index = 1; index < temperatures.length; index++)
            if (temperatures[maxIndex] < temperatures[index])
                maxIndex = index;

        return temperatures[maxIndex];
    }
    public static double lowest(double[] temperatures)
    {
        int minIndex = 0;
        for (int index = 1; index < temperatures.length; index++)
            if (temperatures[minIndex] > temperatures[index])
                minIndex = index;        

        return temperatures[minIndex];
    }
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.*;
公共类arrayLabFirst
{
公共静态void main(字符串[]args)引发FileNotFoundException
{
双[]温度=新双[10];
扫描仪内嵌=新扫描仪(新文件(“data.txt”);
对于(int index=0;index32)
计数++;
其他的
低于计数++;
}
System.out.println(“冻结以上天数:+计数以上”);
System.out.println(“冻结以下天数:+低于计数”);
}
公共静态双最高温度(双[]温度)
{
int maxIndex=0;
对于(int index=1;index温度[index])
minIndex=指数;
返回温度[minIndex];
}
}

您需要从文本文件中读取文本,然后才能执行。但在此之前,请先显示文本文件的示例。为什么您认为
temeratures[]=infle.hasNext()可以工作吗?40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9这段代码甚至可以编译吗?40.3 35.8 29.6 45 17.8 19.2 38.6 31.5 27.8 39.9<这是我的示例文件。我认为temerations[]=infle.hasNext();应该可以,因为我使用infle.hasNext()打印数组的内容。