使用输入文件并创建新文件的程序
program that uses input file and creates a new one
我正在编写一个代码,它在我应该创建的程序中使用一个名为 InvetoryReport.txt 的输入文件,该程序应该获取该文件,然后将文件中的两个数据相乘,然后使用此数据创建一个新文件。同样在程序的开头,它应该询问您输入文件的名称。你得到三次机会然后它会通知你它找不到它现在会退出,然后停止执行。
我的输入文件是这个
Bill 40.95 10
Hammer 1.99 6
Screw 2.88 2
Milk .03 988
(程序应该将列中的两个数字相乘并用总和创建一个新列,然后在下面打印另一行,如下所示
" 库存报告
Bill 40.95 10 409.5
Hammer 1.99 6 11.94
Screw 2.88 2 5.76
Milk .03 988 29.64
Total INVENTORY value $ 456.84"
我目前的程序是这个
package textfiles;
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.IOException;
public class LookOut{
double total = 0.0;
String getFileName(){
System.out.printIn("Type in file name here.");
try {
int count =1;
FileReader fr = new FileReader("InventoryReport.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
out.println(str + "\n");
}
br.close();
} catch (IOException e) {
if(count == 3) {
System.out.printIn("The program will now stop executing.");
System.exit(0);
count++;
}
}
return str;
}
void updateTotal(double d){
total = total + d;
}
double getLineNumber(int String_line){
String [] invRep = line.split(" ");
Double x = double.parseDouble(invRep[1]);
Double y = double.parseDouble(invRep[2]);
return x * y;
}
void printNewData(String = newData) {
PrintWriter pW = new PrintWriter ("newData");
pw.print(newData);
pw.close;
}
public static void main(String[] args){
String str = ("Get file name");
String str = NewData("InventoryReport/n");
File file = new File(str);
Scanner s = new Scanner(file);
while(s.hasNextLine()) {
String line = s.nextLine();
double data = getLineNumber(line);
update total(data);
NewData += line + " " + data + "/n";
Print NewData(NewData);
}
}
}
我收到多个错误代码,我似乎无法弄清楚。
try {
int count =1;
FileReader fr = new FileReader("InventoryReport.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
br.close();
} catch (IOException e) {
if(count == 3) {
System.out.printIn("The program will now stop executing.");
System.exit(0);
count++;
}
}
尽管您是出于好意,但实际上您漏掉了一个“}”。请注意,在捕获之前,您还没有逃脱 Try 块。我想这是因为您将 while 语句的结束 } 混淆为 try 块的结束 }。改为这样做:
try {
int count =1;
FileReader fr = new FileReader("InventoryReport.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
br.close();
}
}
catch (IOException e) {
if(count == 3) {
System.out.printIn("The program will now stop executing.");
System.exit(0);
count++;
}
}
另外,你的缩进到处都是。这应该是一个教训,告诉你为什么你应该正确地格式化你的代码!如果您没有正确格式化,很容易错过像这样的简单语法错误。其他人也很难阅读您的代码并找出其中的问题。
我正在编写一个代码,它在我应该创建的程序中使用一个名为 InvetoryReport.txt 的输入文件,该程序应该获取该文件,然后将文件中的两个数据相乘,然后使用此数据创建一个新文件。同样在程序的开头,它应该询问您输入文件的名称。你得到三次机会然后它会通知你它找不到它现在会退出,然后停止执行。
我的输入文件是这个
Bill 40.95 10
Hammer 1.99 6
Screw 2.88 2
Milk .03 988
(程序应该将列中的两个数字相乘并用总和创建一个新列,然后在下面打印另一行,如下所示 " 库存报告
Bill 40.95 10 409.5
Hammer 1.99 6 11.94
Screw 2.88 2 5.76
Milk .03 988 29.64
Total INVENTORY value $ 456.84"
我目前的程序是这个
package textfiles;
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.IOException;
public class LookOut{
double total = 0.0;
String getFileName(){
System.out.printIn("Type in file name here.");
try {
int count =1;
FileReader fr = new FileReader("InventoryReport.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
out.println(str + "\n");
}
br.close();
} catch (IOException e) {
if(count == 3) {
System.out.printIn("The program will now stop executing.");
System.exit(0);
count++;
}
}
return str;
}
void updateTotal(double d){
total = total + d;
}
double getLineNumber(int String_line){
String [] invRep = line.split(" ");
Double x = double.parseDouble(invRep[1]);
Double y = double.parseDouble(invRep[2]);
return x * y;
}
void printNewData(String = newData) {
PrintWriter pW = new PrintWriter ("newData");
pw.print(newData);
pw.close;
}
public static void main(String[] args){
String str = ("Get file name");
String str = NewData("InventoryReport/n");
File file = new File(str);
Scanner s = new Scanner(file);
while(s.hasNextLine()) {
String line = s.nextLine();
double data = getLineNumber(line);
update total(data);
NewData += line + " " + data + "/n";
Print NewData(NewData);
}
}
}
我收到多个错误代码,我似乎无法弄清楚。
try {
int count =1;
FileReader fr = new FileReader("InventoryReport.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
br.close();
} catch (IOException e) {
if(count == 3) {
System.out.printIn("The program will now stop executing.");
System.exit(0);
count++;
}
}
尽管您是出于好意,但实际上您漏掉了一个“}”。请注意,在捕获之前,您还没有逃脱 Try 块。我想这是因为您将 while 语句的结束 } 混淆为 try 块的结束 }。改为这样做:
try {
int count =1;
FileReader fr = new FileReader("InventoryReport.txt");
BufferedReader br = new BufferedReader(fr);
String str;
while ((str = br.readLine()) != null) {
br.close();
}
}
catch (IOException e) {
if(count == 3) {
System.out.printIn("The program will now stop executing.");
System.exit(0);
count++;
}
}
另外,你的缩进到处都是。这应该是一个教训,告诉你为什么你应该正确地格式化你的代码!如果您没有正确格式化,很容易错过像这样的简单语法错误。其他人也很难阅读您的代码并找出其中的问题。