Java文件未写入输出格式化程序文件

Java文件未写入输出格式化程序文件,java,output,Java,Output,请帮忙,我一辈子都搞不清楚为什么要创建我的输出文件,但没有写入任何内容。我读到一个类似的问题,我必须关闭输出文件,因为信息是缓冲的,只有在文件关闭时才输出。我在读那篇文章之前就已经做过了,除了这一点,我找不到任何其他有助于我的文章 import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; import java.util.Formatter; import java.util.Arra

请帮忙,我一辈子都搞不清楚为什么要创建我的输出文件,但没有写入任何内容。我读到一个类似的问题,我必须关闭输出文件,因为信息是缓冲的,只有在文件关闭时才输出。我在读那篇文章之前就已经做过了,除了这一点,我找不到任何其他有助于我的文章

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Arrays;
public class MyFile {

public static void main(String[] args) {
    try {
        // creating a File instance to reference text file in Java
        File inputFile = new File("C:\\input.txt");

        //creating a Scanner instance to read File in Java
        Scanner scanfile = new Scanner(inputFile);

        //creating a file to output results of program to
        Formatter outputfile = new Formatter("C:\\output.txt");

        //read each line of file using the Scanner instance "scanfile"
        while (scanfile.hasNextLine()) {
            String line = scanfile.nextLine();

            //splitting String "line" into 2 parts at the ":"
            String[] parts = line.split(":");
            String part1 = parts[0];
            String part2 = parts[1];

            //splitting part2 into an array of integers at ","
            String[] lineNumString = part2.split(",");
            int[] lineNums = new int[lineNumString.length];
            for (int i = 0; i < lineNumString.length; i++ ) {
                lineNums[i] = Integer.parseInt(lineNumString[i]);
            }

            /*now that we have the line split into an operator (min, max or avg) and an array of numbers
            we can identify the operator with an if and else if statements, then manipulate the integer array according 
            to the operator*/

            //Outputting max value if operator is max
            if (part1 == "max") {
                String outputText = "The Max of " + Arrays.toString(lineNums) + " is " + maxOfArray(lineNums) + ". \r\n";
                outputfile.format("%s", outputText);

            }

            //Outputting min value if operator is min   
            else if (part1 == "min") {
                String outputText = "The Min of " + Arrays.toString(lineNums) + " is " + minOfArray(lineNums) + ". \r\n";
                outputfile.format("%s", outputText);
            }

            //Outputting avg value if operator is avg
            else if (part1 == "avg") {
                String outputText = "The Min of " + Arrays.toString(lineNums) + " is " + avgOfArray(lineNums) + ". \r\n";
                outputfile.format("%s", outputText);

            }

        }
        scanfile.close();
        outputfile.close();
    }

    // print out error messages for input file not found or for being unable to create or write to an output file.
    catch (FileNotFoundException e) {
        System.out.println("Error.");
    }



}
// method for determining the max value in an array of integers
public static int maxOfArray(int[] inputArray) {
    int maxValue = inputArray[0];
    for (int i = 1; i < inputArray.length; i++) {
        if (inputArray[i] > maxValue) {
            maxValue = inputArray[i];
        }

    }
    return maxValue;
}

// method for determining the min value in an array of integers
public static int minOfArray(int[] inputArray) {
    int minValue = inputArray[0];
    for (int i = 1; i < inputArray.length; i++) {
        if (inputArray[i] < minValue) {
            minValue = inputArray[i];
        }

    }
    return minValue;
}

//method for determining avg value of an array of integers
public static int avgOfArray(int[] inputArray) {
    int sum = 0;

    for (int i : inputArray) {
        sum += i;
    }
    int average = sum / inputArray.length;
    return average;
}
import java.util.Scanner;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Formatter;
导入java.util.array;
公共类MyFile{
公共静态void main(字符串[]args){
试一试{
//在Java中创建引用文本文件的文件实例
File inputFile=新文件(“C:\\input.txt”);
//创建扫描仪实例以读取Java中的文件
扫描仪扫描文件=新扫描仪(输入文件);
//创建文件以将程序结果输出到
格式化程序输出文件=新格式化程序(“C:\\output.txt”);
//使用扫描仪实例“scanfile”读取每行文件
while(scanfile.hasNextLine()){
String line=scanfile.nextLine();
//将字符串“行”拆分为两个部分:
String[]parts=line.split(“:”);
字符串part1=零件[0];
字符串part2=零件[1];
//将第2部分拆分为“,”处的整数数组
字符串[]lineNumString=part2.split(“,”);
int[]lineNums=newint[lineNumString.length];
对于(int i=0;imaxValue){
最大值=输入阵列[i];
}
}
返回最大值;
}
//确定整数数组中最小值的方法
公共静态int minOfArray(int[]输入阵列){
int minValue=inputArray[0];
for(int i=1;i

}

使用
equals
equalsIgnoreCase
不比较字符串==

 if (part1.equals("max")) {

看起来您正在正确地打开/关闭文件。但是,您正在执行直接的字符串比较,这意味着您的所有布尔值每次都将返回false,从而导致一个空白文件

在Java中比较字符串时使用
.equals()
。例如:


if(part1.equals(“max”){do a thing}

我忘了提到这是学校的作业,我可以在您的
if
语句中看到,您试图比较字符串。在本例中,您将编写
part.equals(“min”)
,因为您无法使用
=
比较字符串。天哪,我怎么会忘记这一点。谢谢,我一直都忘了。这只是Java的一种怪癖。谢谢你的帮助。我真的不知道我是怎么完全忘记的。