Java 如何将数组写入文件?

Java 如何将数组写入文件?,java,Java,我完全被困在如何将输出写入输出文件中。我在下面提供了一些信息,希望能让自己更清楚。谢谢任何能帮助我的人 输入1234时的输出(我需要将其写入txt文件): 当前正在写入txt文件的内容: Your original number was: 1234 The reversed digits are: 4321 The even digits are: 2 4 The odd digits are: 1 3 Your original number was: 1234 这是我现在的代码

我完全被困在如何将输出写入输出文件中。我在下面提供了一些信息,希望能让自己更清楚。谢谢任何能帮助我的人

输入1234时的输出(我需要将其写入txt文件):

当前正在写入txt文件的内容:

Your original number was: 
1234
The reversed digits are: 
4321
The even digits are: 
2 4
The odd digits are:
1 3 
Your original number was: 
1234
这是我现在的代码:

 import java.util.Scanner;
    import java.io.*;

    public class order {

    //Input validation. Allows any integer greater than 0. Any number starting 
    with 0 is invalid.

    private static void validate(Scanner input) { 

        String userEntry;       

        System.out.println("Please enter a positive integer greater than 0.");
        userEntry = input.nextLine();

        while (!userEntry.matches("^[1-9][0-9]*$")) {
            System.out.println("Invalid number. Try again");
            userEntry = input.nextLine();
        }

        try {
            FileWriter writer = new FileWriter("outDataFile.txt", true);
            PrintWriter outputfile = new PrintWriter(writer);

            outputfile.println("Your original number was: ");
            outputfile.println(userEntry);
            System.out.println("Your original number was: ");
            System.out.println(userEntry);

            System.out.println("The reversed digits are: ");
            reverse (input, userEntry);
            System.out.println();

            System.out.println("The even digits are: ");
            even (input, userEntry);
            System.out.println();

            System.out.println("The odd digits are: ");
            odd (input, userEntry);
            System.out.println();

            } catch (IOException e){            
        }            
    }

    //Reverses the order of digits.

    public static void reverse(Scanner keyboard, String intString) {

        int strsize = intString.length();
        int[] digits = new int[strsize];

        for (int i = 0; i < strsize; ++i)
        {
            String temp = Character.toString(intString.charAt(i));
            digits[i] = Integer.parseInt(temp);
        }

        for (int i = strsize - 1; i >= 0; --i)
        {
            System.out.print(digits[i]);
        }
    }

    //Extracts even numbers.
    public static void even (Scanner keyboard2, String intString2) {

        int strsize2 = intString2.length();
        int[] digits2 = new int[strsize2];

        for (int i = 0 ; i < strsize2 ; ++i) {

                String temp = Character.toString(intString2.charAt(i));
                digits2[i] = Integer.parseInt(temp);

                if(digits2[i] % 2 == 0) {
                System.out.print(digits2[i] + " ");
            }   
        }                                           
    }

    //Extracts odd numbers.

    public static void odd (Scanner keyboard3, String intString3) {

        int strsize3 = intString3.length();
        int[] digits3 = new int[strsize3];

        for (int i = 0 ; i < strsize3 ; ++i) {

                String temp = Character.toString(intString3.charAt(i));
                digits3[i] = Integer.parseInt(temp);

                if(digits3[i] % 2 != 0) {

                System.out.print(digits3[i] + " ");                             
            }   
        }                                           
    }

    //Allows continuous input.

    public static void main(String[] args) {                

        Scanner keyboard = new Scanner(System.in);

        boolean validate = true;            
        while (validate) {
        validate(keyboard);

        boolean invalid = true;                                                                     
        while (invalid) {
            System.out.println( "Would you like to try another calculation? [y/n]" );               

            Scanner input = new Scanner(System.in);
            char answer;
            String option = input.next();   

            if ("y".equalsIgnoreCase(option)) {                         
                invalid = false;
            }   
            else if ("n".equalsIgnoreCase(option)) {                    
                invalid = false;
                validate = false;
                    System.out.println( "Goodbye." );               
                    input.close();
            }
            else {                                                                                  
                System.err.println("The only valid answers are y/n.");
                System.out.println();
            }
            }
        }
    }
}   
import java.util.Scanner;
导入java.io.*;
公共阶级秩序{
//输入验证。允许任何大于0的整数。任何数字开始
与0的匹配无效。
专用静态无效验证(扫描仪输入){
字符串用户项;
System.out.println(“请输入大于0的正整数”);
userEntry=input.nextLine();
而(!userEntry.matches(“^[1-9][0-9]*$”){
System.out.println(“无效号码,请重试”);
userEntry=input.nextLine();
}
试一试{
FileWriter writer=newFileWriter(“outDataFile.txt”,true);
PrintWriter outputfile=新的PrintWriter(writer);
println(“您原来的号码是:”);
outputfile.println(userEntry);
System.out.println(“您原来的号码是:”);
System.out.println(userEntry);
System.out.println(“反向数字为:”);
反向(输入,用户输入);
System.out.println();
System.out.println(“偶数为:”);
偶数(输入,用户输入);
System.out.println();
System.out.println(“奇数为:”);
奇数(输入,用户输入);
System.out.println();
}捕获(IOE){
}            
}
//反转数字的顺序。
公共静态无效反转(扫描仪键盘、字符串intString){
int strsize=intString.length();
int[]位=新的int[strsize];
对于(int i=0;i=0;--i)
{
系统输出打印(数字[i]);
}
}
//提取偶数。
公共静态无效偶数(扫描仪键盘2,字符串intString2){
int strize2=intString2.length();
int[]digits2=新的int[strize2];
对于(int i=0;i
问题出在
try
块中

不正确:

outputfile.println("Your original number was: ");
        outputfile.println(userEntry);
        System.out.println("Your original number was: ");
        System.out.println(userEntry);

    System.out.println("The reversed digits are: ");
    reverse (input, userEntry);
    System.out.println();

    System.out.println("The even digits are: ");
    even (input, userEntry);
    System.out.println();

    System.out.println("The odd digits are: ");
    odd (input, userEntry);
    System.out.println();
outputfile.println("Your original number was: ");
outputfile.println(userEntry);
System.out.println("Your original number was: ");
System.out.println(userEntry);

System.out.println("The reversed digits are: ");
reverse (input, userEntry);
System.out.println();
outputfile.println("The reversed digits are: ");
reverse (input, userEntry);
outputfile.println();


System.out.println("The even digits are: ");
even (input, userEntry);
System.out.println();
outputfile.println("The even digits are: ");
even (input, userEntry);
outputfile.println();

System.out.println("The odd digits are: ");
odd (input, userEntry);
System.out.println();
outputfile.println("The odd digits are: ");
odd (input, userEntry);
outputfile.println();
问题:您几乎必须使用
outputfile.println
镜像
System.out.println

正确:

outputfile.println("Your original number was: ");
        outputfile.println(userEntry);
        System.out.println("Your original number was: ");
        System.out.println(userEntry);

    System.out.println("The reversed digits are: ");
    reverse (input, userEntry);
    System.out.println();

    System.out.println("The even digits are: ");
    even (input, userEntry);
    System.out.println();

    System.out.println("The odd digits are: ");
    odd (input, userEntry);
    System.out.println();
outputfile.println("Your original number was: ");
outputfile.println(userEntry);
System.out.println("Your original number was: ");
System.out.println(userEntry);

System.out.println("The reversed digits are: ");
reverse (input, userEntry);
System.out.println();
outputfile.println("The reversed digits are: ");
reverse (input, userEntry);
outputfile.println();


System.out.println("The even digits are: ");
even (input, userEntry);
System.out.println();
outputfile.println("The even digits are: ");
even (input, userEntry);
outputfile.println();

System.out.println("The odd digits are: ");
odd (input, userEntry);
System.out.println();
outputfile.println("The odd digits are: ");
odd (input, userEntry);
outputfile.println();

我已经测试了下面的代码,该代码用于将反向编号写入文件。您可以将相同的技术应用于其他方法。注意,我使用的是
PrintWriter.print
而不是
PrintWriter.println
来获取同一行上的所有数组元素

public class Order {

    PrintWriter outputfile;
    FileWriter writer;

    public void validate(Scanner input) { 

        String userEntry;       

        System.out.println("Please enter a positive integer greater than 0.");
        userEntry = input.nextLine();

        while (!userEntry.matches("^[1-9][0-9]*$")) {
            System.out.println("Invalid number. Try again");
            userEntry = input.nextLine();
        }

        try {
            writer = new FileWriter("outDataFile.txt", true);
            outputfile = new PrintWriter(writer);

            outputfile.println("Your original number was: ");
            outputfile.println(userEntry);
            outputfile.flush();
            System.out.println("Your original number was: ");
            System.out.println(userEntry);

            System.out.println("The reversed digits are: ");
            outputfile.println("The reversed digits are: ");
            reverse (input, userEntry, writer);
            System.out.println();

        } catch (IOException e){            
        }            
    }

    //Reverses the order of digits.
    public void reverse(Scanner keyboard, String intString, FileWriter writer) {

        outputfile = new PrintWriter(writer);

        int strsize = intString.length();
        int[] digits = new int[strsize];

        for (int i = 0; i < strsize; ++i)
        {
            String temp = Character.toString(intString.charAt(i));
            digits[i] = Integer.parseInt(temp);
        }

        for (int i = strsize - 1; i >= 0; --i)
        {         
            System.out.print(digits[i]);
            outputfile.print(digits[i]);
            outputfile.flush();
        }
    }   
}
公共类秩序{
PrintWriter输出文件;
文件编写器;
公共无效验证(扫描程序输入){
字符串用户项;
System.out.println(“请输入大于0的正整数”);
userEntry=input.nextLine();
而(!userEntry.matches(“^[1-9][0-9]*$”){
System.out.println(“无效号码,请重试”);
userEntry=input.nextLine();
}
试一试{
writer=newfilewriter(“outDataFile.txt”,true);
outputfile=新的PrintWriter(writer);
println(“您原来的号码是:”);
outputfile.println(userEntry);
outputfile.flush();
System.out.println(“您原来的号码是:”);
System.out.println(userEntry);
System.out.println(“反向数字为:”);
outputfile.println