Java 如何将数组写入文件?
我完全被困在如何将输出写入输出文件中。我在下面提供了一些信息,希望能让自己更清楚。谢谢任何能帮助我的人 输入1234时的输出(我需要将其写入txt文件): 当前正在写入txt文件的内容: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 这是我现在的代码
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