使用输入文件并创建新文件的程序

时间:2015-05-17 00:43:55

标签: java file input ioexception printwriter

我正在编写一个代码,该代码在我应该创建的程序中使用一个名为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);
 }
 }
 }

我得到了多个错误代码,我似乎无法弄清楚。

1 个答案:

答案 0 :(得分:0)

 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++;
                }
           }

尽管你有最好的意图,但实际上你却错过了一个'}。请注意,您尚未在catch之前转义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++;
                }
           }

另外,你的缩进是完整的。这应该是一个教训,为什么你应该正确格式化你的代码!如果您没有正确格式化,很容易错过简单的语法错误。其他人也很难阅读你的代码并找出它的错误。