stefoto

_10_OrderOfProducts

Sep 14th, 2014
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.io.FileWriter;
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7. import java.util.Locale;
  8.  
  9. public class _10_OrderOfProducts {
  10.  
  11. public static void main(String[] args) {
  12.  
  13. Locale.setDefault(new Locale("US"));
  14. String readProducts = "src/thirdHomework/Products.txt";
  15. String readOrder = "src/thirdHomework/Order.txt";
  16. String writeOutput = "src/thirdHomework/Output.txt";
  17. ArrayList<Product> productList = new ArrayList<Product>();
  18. readProductsFromFile(readProducts, productList);
  19. double result = calculateTotalOrder(readOrder, productList, 0);
  20. writeOrder(writeOutput, result);
  21. }
  22.  
  23. private static void readProductsFromFile(String fileName,
  24. ArrayList<Product> productList) {
  25. try (BufferedReader fileReader = new BufferedReader(new FileReader(
  26. fileName));) {
  27.  
  28. while (true) {
  29. Product product = new Product();
  30. String line = fileReader.readLine();
  31. if (line == null) {
  32. break;
  33. }
  34.  
  35. String[] tokens = line.split(" ");
  36. product.setName(tokens[0]);
  37. product.setPrice(Double.parseDouble(tokens[1]));
  38. productList.add(product);
  39. }
  40. } catch (IOException e) {
  41. System.out.println("Error");
  42. }
  43. }
  44.  
  45. private static double calculateTotalOrder(String fileName,
  46. ArrayList<Product> productList, double result) {
  47.  
  48. try (BufferedReader fileReader = new BufferedReader(new FileReader(
  49. fileName));) {
  50.  
  51. while (true) {
  52. Product product = new Product();
  53. String line = fileReader.readLine();
  54. if (line == null) {
  55. break;
  56. }
  57.  
  58. String[] tokens = line.split(" ");
  59. product.setQuantity(Double.parseDouble(tokens[0]));
  60. product.setName(tokens[1]);
  61. for (Product prod : productList) {
  62. if (prod.getName().equals(product.getName())) {
  63. result += product.getQuantity() * prod.getPrice();
  64. }
  65. }
  66. }
  67. } catch (IOException e) {
  68. System.out.println("Error");
  69. }
  70. return result;
  71. }
  72.  
  73. private static void writeOrder(String fileName, double result) {
  74.  
  75. File newFile = new File(fileName);
  76. try {
  77. newFile.createNewFile();
  78. } catch (IOException e) {
  79. System.err.println("Cannot create the file " + newFile);
  80. e.printStackTrace();
  81. }
  82.  
  83. try {
  84. // creates a FileWriter Object
  85. FileWriter writer = new FileWriter(newFile);
  86. // Writes the content to the file
  87. writer.write(String.format("%.1f", result));
  88. writer.flush();
  89. writer.close();
  90. } catch (IOException e) {
  91. System.err.println("Cannot write to the file " + newFile);
  92. e.printStackTrace();
  93. }
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment