Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Java IO - Септември 2018
- Потребно е да направите Java апликација која кластерира log документи според содржината.
- За таа потреба, имплементирајте метод ClusterDocumentByContent(String in, String out), кој ќе го изминува рекурзивно директориумот претставен преку in. Доколку наиде на .log датотека, потребно е да ја измине нејзината содржина линија по линија.
- Ако линијата почнува со ERROR, линијата ќе ја запише во датотеката [out]/ERROR/log.out,
- Ако линијата започнува со WARN ќе ја запише во датотеката [out]/WARN/log.out,
- Ако линијата започнува со нешто различно од ERROR и WARN, тогаш ја запишува во [out]/OTHER/log.out.
- На почетокот од секоја запишана линија треба да стои името на датотеката од каде што е прочитана. Секое запишување треба да се прави на крај од датотеката. После секоја запишана линија треба да стои карактер за нов ред.
- Reshenie : https://pastebin.com/VSaDRb7h?fbclid=IwAR20n8UewB8Y_Spxzt_L0x9_3I33GmIhcp2ERrZ5q0_pYMTxZabT0ME7VTQ
- import java.io.*;
- public class Sep2018 {
- public static void main(String[] args) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String in = br.readLine();
- String out = br.readLine();
- ClusterDocumentByContent(in, out);
- }
- public static void ClusterDocumentByContent(String in, String out) throws IOException {
- File izvor = new File(in);
- if (!izvor.exists()) {
- return;
- }
- File dest = new File(out);
- if (!dest.exists()) {
- dest.mkdirs();
- }
- File error = new File(dest, "ERROR");
- error.mkdirs();
- File warn = new File(dest, "WARN");
- warn.mkdirs();
- File other = new File(dest, "OTHER");
- other.mkdirs();
- File loge = new File(error, "log.txt");
- loge.createNewFile();
- FileWriter fwe = new FileWriter(loge, true);
- File logw = new File(warn, "log.txt");
- logw.createNewFile();
- FileWriter fww = new FileWriter(logw, true);
- File logo = new File(other, "log.txt");
- logo.createNewFile();
- FileWriter fwo = new FileWriter(logo, true);
- File[] files = izvor.listFiles();
- for (File f : files) {
- BufferedReader br = new BufferedReader(new FileReader(f));
- if (f.isDirectory()) {
- ClusterDocumentByContent(f.getAbsolutePath(), dest.getAbsolutePath());
- }
- if (f.isFile()) {
- if (f.getName().endsWith(".txt")) {
- String line = null;
- String er = "ERROR";
- String wa = "WARN";
- try {
- while ((line = br.readLine()) != null) {
- if (line.startsWith(er)) {
- fwe.write(f.getName());
- fwe.write(line);
- fwe.write(System.lineSeparator());
- } else if (line.startsWith(wa)) {
- fww.write(f.getName());
- fww.write(line);
- fww.write(System.lineSeparator());
- } else {
- fwo.write(f.getName());
- fwo.write(line);
- fwo.write(System.lineSeparator());
- }
- }
- } finally {
- if (br != null) {
- br.close();
- }
- if (fwe != null) {
- fwe.flush();
- fwe.close();
- }
- if (fww != null) {
- fww.flush();
- fww.close();
- }
- if (fwo != null) {
- fwo.flush();
- fwo.close();
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement