Advertisement
Guest User

Untitled

a guest
Mar 28th, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 10.33 KB | None | 0 0
  1. import java.io.FileInputStream;
  2. import java.io.FileNotFoundException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class FileLists extends Thread {
  8.     List<String> baseText = new ArrayList<String>();
  9.     List<String> newText;
  10.     List<String> fileNameList = new ArrayList<String>();
  11.     String path;   
  12.     MailSender soap = new MailSender(path);
  13.  
  14.     FileLists(String path) {       
  15.         this.path = path;
  16.         fileNameList.add(this.path);       
  17.     }
  18.  
  19.     public void run() {
  20.    
  21.         Scanner scanner = null;
  22.         try {
  23.             boolean loop = true;
  24.             while (loop == true) {
  25.                 Thread.sleep(2000);
  26.                 newText = new ArrayList<String>();
  27.                 for (String fileNames : fileNameList) {
  28.                     scanner = new Scanner(new FileInputStream(fileNames));
  29.                 }
  30.                 while (scanner.hasNextLine()) {
  31.                     newText.add(scanner.nextLine());
  32.                 }
  33.                 baseText.addAll(newText);
  34.                 for (int i = 0; i < newText.size(); i++) {
  35.                     if (!baseText.get(i).equals(newText.get(i))) {                     
  36.                         System.out.println("В этом файле - " + path + " произошли изменения.");
  37.                         soap.SendMessage(path);
  38.                         baseText.clear();
  39.                         baseText.addAll(newText);
  40.                         return;
  41.                     }
  42.                 }
  43.             }
  44.         } catch (NullPointerException exx) {           
  45.             return;
  46.         } catch (FileNotFoundException ex) {
  47.             System.out.println("Файл по этому адресу  -- " + path + " -- не был найден.");
  48.             return;
  49.         } catch (InterruptedException e) {
  50.             System.out.println("Мониторинг файла по этому адресу -- " + path + " -- был остановлен.");
  51.             return;
  52.         } finally {
  53.             if (scanner != null) {
  54.                 scanner.close();
  55.             }
  56.         }
  57.     }
  58.  
  59.     public void MonitorList() {
  60.         for (String fileNames : fileNameList) {
  61.             System.out.print(fileNames + "\n");
  62.         }
  63.     }
  64.     public void ClearMonitorList() {
  65.         fileNameList.clear();
  66.     }
  67. }
  68.  
  69.  
  70. import java.util.Properties;
  71. import javax.mail.Message;
  72. import javax.mail.MessagingException;
  73. import javax.mail.PasswordAuthentication;
  74. import javax.mail.Session;
  75. import javax.mail.Transport;
  76. import javax.mail.internet.AddressException;
  77. import javax.mail.internet.InternetAddress;
  78. import javax.mail.internet.MimeMessage;
  79.  
  80. public class MailSender {
  81.     String mail = "";
  82.    
  83.     MailSender(String mail) {
  84.         this.mail = mail;  
  85.     }  
  86.    
  87.     public void MailAdress() {
  88.         System.out.println(mail);      
  89.     }
  90.     public void SendMessage(String fileAdress) {   
  91.         final String userName = "bugiman17@mail.ru";
  92.         final String password = "";
  93.  
  94.         Properties props = new Properties();
  95.         props.put("mail.smtp.auth", "true");
  96.         props.put("mail.smtp.starttls.enable", "true");
  97.         props.put("mail.smtp.host", "smtp.mail.ru");
  98.         props.put("mail.smtp.port", "587");
  99.  
  100.         Session session = Session.getInstance(props, new javax.mail.Authenticator() {
  101.             protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
  102.                 return new PasswordAuthentication(userName, password);
  103.             }
  104.         });
  105.         try {
  106.             Message message = new MimeMessage(session);
  107.             message.setFrom(new InternetAddress("bugiman17@mail.ru"));
  108.             message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(this.mail));
  109.             message.setSubject("Произошли изменения");
  110.             message.setText("Замечены изменения файле по этому адресу -- " + fileAdress);
  111.             Transport.send(message);
  112.             System.out.println("Отправлено сообщение на указанную электронную почту.");
  113.         } catch (AddressException ex) {
  114.             System.out.println("Адрес электронной почты указан не корректно.");
  115.         } catch (MessagingException ex) {
  116.             System.out.println("ddd");
  117.         }
  118.     }
  119.  
  120. }
  121.  
  122.  
  123.  
  124. import java.lang.Thread.State;
  125. import java.util.ArrayList;
  126. import java.util.InputMismatchException;
  127. import java.util.List;
  128. import java.util.Scanner;
  129.  
  130. public class Monitor { 
  131.     public static void main(String args[]) throws InterruptedException {
  132.         Scanner scanner = new Scanner(System.in);
  133.         List<FileLists> scan = new ArrayList<FileLists>();
  134.         MailSender mail;       
  135.         boolean mainMainLoop = true;
  136.         boolean pathMenu = true;
  137.         boolean mainLoop = false;
  138.         boolean interrupt = false;
  139.         String mailAdres;
  140.         System.out.println("Введите путь к файлу:");
  141.         while(mainMainLoop == true){       
  142.         while (pathMenu == true) {
  143.             try {              
  144.                 scan.add(new FileLists(scanner.next()));
  145.                 System.out.println("1)Войти в меню мониторинга.\n2)Написать больше путей для мониторинга.");
  146.                 int pathNum = scanner.nextInt();
  147.                 if (pathNum == 1) {                
  148.                     mainLoop = true;
  149.                     pathMenu = false;
  150.                     System.out.println("1)Начать мониторинг файлов.\n2)Меню остановки/список отслеживаемых файлов.\n3)Список введённых файлов.\n4)ВВести адрес электронной почты для отправки сообщения.\n5)Выход из программы.");
  151.                 }
  152.                 if (pathNum == 2) {
  153.                     System.out.println("Пишите:");
  154.                 }
  155.             } catch (InputMismatchException ex) {
  156.                 String inputEx = scanner.next();
  157.                 System.out.println("\tНеправильное слово.");
  158.             }
  159.         }
  160.         while (mainLoop == true) {         
  161.             try {
  162.                 int monitoringMenu = scanner.nextInt();
  163.                 if (monitoringMenu == 1) {
  164.                     try {
  165.                         for (int a = 0; a < scan.size(); a++) {
  166.                             scan.get(a).setDaemon(true);
  167.                             scan.get(a).start();                       
  168.                         }                      
  169.                     } catch (IllegalThreadStateException ex) {
  170.                         for (int a = 0; a < scan.size(); a++) {
  171.                             if (scan.get(a).getState() == State.TERMINATED) {  
  172.                                 System.out.println("Нет нужды этого делать. Но я пытался это сделать весь день:'(");
  173.                             }
  174.                             if (scan.get(a).getState() == State.TIMED_WAITING) {
  175.                                 System.out.print("Слежение за этим файлом уже идёт: ");
  176.                                 scan.get(a).MonitorList();
  177.                             }
  178.                         }
  179.                     }
  180.                 }
  181.                 if (monitoringMenu == 2) {
  182.                     interrupt = true;
  183.                     System.out.println("Меню остановки: ВВедите номер файла за которым нужно прекратить слежение.\nВведите 0 для выхода.\n-----------------------------------------");
  184.                     for (int a = 0; a < scan.size(); a++) {
  185.                         try{
  186.                         if (scan.get(a).getState() == State.TIMED_WAITING) {
  187.                             System.out.print(a + 1 + ")");
  188.                             scan.get(a).MonitorList();
  189.                         }
  190.                         }catch(NullPointerException ex){                           
  191.                         }
  192.                     }
  193.                     while (interrupt == true) {
  194.                         try {
  195.                             int interruptNum = scanner.nextInt();
  196.                             if (interruptNum == 0) {
  197.                                 System.out.println("1)Начать мониторинг файлов.\n2)Меню остановки/список отслеживаемых файлов.\n3)Список введённых файлов.\n4)ВВести адрес электронной почты для отправки сообщения.\n5)Выход из программы.");
  198.                                 interrupt = false;
  199.                             }
  200.                             if (interruptNum != 0 || interruptNum < scan.size() - 1) {                 
  201.                                 scan.get(interruptNum - 1).interrupt();                            
  202.                             }
  203.                             if(interruptNum < 0 || interruptNum > scan.size()){
  204.                             System.out.println("Файла под таким номером не существует");
  205.                             }
  206.                         }
  207.                         catch (IndexOutOfBoundsException ex) {                     
  208.                         }
  209.                     }
  210.                 }
  211.                 if (monitoringMenu == 3) {
  212.                     boolean clearMenu = true;
  213.                     while (clearMenu == true) {
  214.                         System.out.println("Файлы выбранные для мониторинга:");
  215.                         for (int b = 0; b < scan.size(); b++) {
  216.                             scan.get(b).MonitorList();
  217.                         }
  218.                         System.out.println("Нажмите 1 чтобы очистить лист введённых файлов. Нажмите 2 чтобы выйти.");
  219.                         int clear = scanner.nextInt();
  220.                         if (clear == 1) {
  221.                             for (int a = 0; a < scan.size(); a++) {
  222.                                 scan.get(a).ClearMonitorList();
  223.                             }
  224.                             System.out.println("Лист очищен.");
  225.                             System.out.println("1)Начать мониторинг файлов.\n2)Меню остановки/список отслеживаемых файлов.\n3)Список введённых файлов.\n4)ВВести адрес электронной почты для отправки сообщения.\n5)Выход из программы.");
  226.                             clearMenu = false;
  227.                         }
  228.                         if (clear == 2) {
  229.                             System.out.println("1)Начать мониторинг файлов.\n2)Меню остановки/список отслеживаемых файлов.\n3)Список введённых файлов.\n4)ВВести адрес электронной почты для отправки сообщения.\n5)Выход из программы.");
  230.                             clearMenu = false;
  231.                         }
  232.                     }
  233.                 }
  234.                 if (monitoringMenu == 4) {
  235.                     System.out.print("ВВедите адрес получателя: ");
  236.                     mailAdres = scanner.next();
  237.                     mail = new MailSender(mailAdres);
  238.                     scan.add(new FileLists(mailAdres));
  239.                     boolean mailPath = true;
  240.                     while (mailPath == true) {
  241.                         System.out.print("\nВы указали это адрес как адрес получателя - ");                     
  242.                         mail.MailAdress();                     
  243.                         System.out.println("Вы уверены?\n1)Да. \n2)ВВести другой адрес.");
  244.                         int mailMenu = scanner.nextInt();
  245.                         if (mailMenu == 1) {
  246.                             System.out.println("1)Начать мониторинг файлов.\n2)Меню остановки/список отслеживаемых файлов.\n3)Список введённых файлов.\n4)ВВести адрес электронной почты для отправки сообщения.\n5)Выход из программы.");
  247.                             mailPath = false;                          
  248.                         }
  249.                         if (mailMenu == 2) {
  250.                             System.out.println("Вы меняете адрес получателя:");
  251.                             mail = new MailSender(scanner.next());                         
  252.                         }
  253.                     }
  254.                 }              
  255.                 if(monitoringMenu == 5){
  256.                     System.out.println("До свидания.");                  
  257.                     return;
  258.                 }
  259.             } catch (InputMismatchException ex) {
  260.                 String inputEx = scanner.next();
  261.                 System.out.println("Неправильное слово.");
  262.             }
  263.         }
  264.     }
  265.     }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement