Advertisement
Blagojche

Java IO - Septemvri 2018

Jan 28th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.69 KB | None | 0 0
  1. Java IO - Септември 2018
  2. Потребно е да направите Java апликација која кластерира log документи според содржината.
  3. За таа потреба, имплементирајте метод ClusterDocumentByContent(String in, String out), кој ќе го изминува рекурзивно директориумот претставен преку in. Доколку наиде на .log датотека, потребно е да ја измине нејзината содржина линија по линија.
  4. Ако линијата почнува со ERROR, линијата ќе ја запише во датотеката [out]/ERROR/log.out,
  5. Ако линијата започнува со WARN ќе ја запише во датотеката [out]/WARN/log.out,
  6. Ако линијата започнува со нешто различно од ERROR и WARN, тогаш ја запишува во [out]/OTHER/log.out.
  7. На почетокот од секоја запишана линија треба да стои името на датотеката од каде што е прочитана. Секое запишување треба да се прави на крај од датотеката. После секоја запишана линија треба да стои карактер за нов ред.
  8. Reshenie : https://pastebin.com/VSaDRb7h?fbclid=IwAR20n8UewB8Y_Spxzt_L0x9_3I33GmIhcp2ERrZ5q0_pYMTxZabT0ME7VTQ
  9.  
  10. import java.io.*;
  11.  
  12. public class Sep2018 {
  13.  
  14. public static void main(String[] args) throws IOException {
  15. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  16. String in = br.readLine();
  17. String out = br.readLine();
  18. ClusterDocumentByContent(in, out);
  19. }
  20.  
  21. public static void ClusterDocumentByContent(String in, String out) throws IOException {
  22. File izvor = new File(in);
  23. if (!izvor.exists()) {
  24. return;
  25. }
  26.  
  27. File dest = new File(out);
  28. if (!dest.exists()) {
  29. dest.mkdirs();
  30. }
  31.  
  32. File error = new File(dest, "ERROR");
  33. error.mkdirs();
  34.  
  35. File warn = new File(dest, "WARN");
  36. warn.mkdirs();
  37.  
  38. File other = new File(dest, "OTHER");
  39. other.mkdirs();
  40.  
  41. File loge = new File(error, "log.txt");
  42. loge.createNewFile();
  43. FileWriter fwe = new FileWriter(loge, true);
  44.  
  45. File logw = new File(warn, "log.txt");
  46. logw.createNewFile();
  47. FileWriter fww = new FileWriter(logw, true);
  48.  
  49. File logo = new File(other, "log.txt");
  50. logo.createNewFile();
  51. FileWriter fwo = new FileWriter(logo, true);
  52.  
  53. File[] files = izvor.listFiles();
  54. for (File f : files) {
  55.  
  56. BufferedReader br = new BufferedReader(new FileReader(f));
  57.  
  58. if (f.isDirectory()) {
  59. ClusterDocumentByContent(f.getAbsolutePath(), dest.getAbsolutePath());
  60. }
  61. if (f.isFile()) {
  62. if (f.getName().endsWith(".txt")) {
  63.  
  64. String line = null;
  65. String er = "ERROR";
  66. String wa = "WARN";
  67.  
  68. try {
  69. while ((line = br.readLine()) != null) {
  70. if (line.startsWith(er)) {
  71. fwe.write(f.getName());
  72. fwe.write(line);
  73. fwe.write(System.lineSeparator());
  74. } else if (line.startsWith(wa)) {
  75. fww.write(f.getName());
  76. fww.write(line);
  77. fww.write(System.lineSeparator());
  78. } else {
  79. fwo.write(f.getName());
  80. fwo.write(line);
  81. fwo.write(System.lineSeparator());
  82. }
  83. }
  84. } finally {
  85. if (br != null) {
  86. br.close();
  87. }
  88. if (fwe != null) {
  89. fwe.flush();
  90. fwe.close();
  91. }
  92. if (fww != null) {
  93. fww.flush();
  94. fww.close();
  95. }
  96. if (fwo != null) {
  97. fwo.flush();
  98. fwo.close();
  99. }
  100. }
  101. }
  102. }
  103. }
  104. }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement