Advertisement
jaVer404

level18.lesson10.home10(pre_beta)

Jan 15th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.46 KB | None | 0 0
  1. package com.javarush.test.level18.lesson10.home10;
  2.  
  3. /* Собираем файл
  4. Собираем файл из кусочков
  5. 1. Считывать с консоли имена файлов
  6. Каждый файл имеет имя: [someName].partN.
  7. Например, Lion.avi.part1, Lion.avi.part2, ..., Lion.avi.part37.
  8.  
  9. 2. Имена файлов подаются в произвольном порядке. Ввод заканчивается словом "end"
  10.  
  11. В папке, где находятся все прочтенные файлы, создать файл без приставки [.partN]. Например, Lion.avi
  12. В него переписать все байты из файлов-частей используя буфер.
  13. Файлы переписывать в строгой последовательности, сначала первую часть,
  14. потом вторую, ..., в конце - последнюю.
  15.  
  16. Закрыть потоки. Не использовать try-with-resources
  17. */
  18.  
  19. import java.io.BufferedReader;
  20. import java.io.File;
  21. import java.io.IOException;
  22. import java.io.InputStreamReader;
  23. import java.util.*;
  24.  
  25. public class Solution {
  26.     public static void main(String[] args) throws IOException {
  27.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  28.         String fileName;
  29.         boolean stopInput = false;
  30.         HashMap<String, String> fileList = new HashMap<String, String>();
  31.         File specFile = null;
  32.         while (!stopInput) {
  33.             fileName =reader.readLine();
  34.             if (fileName.equals("end")) {
  35.                 stopInput = true;
  36.             }
  37.             else {
  38.                 specFile = new File(fileName);
  39.                 if(specFile.exists() && !specFile.isDirectory()) {
  40.                     fileList.put(fileName, returnExt(fileName));
  41.                 }
  42.             }
  43.         }
  44.         fileList= sortByComparator(fileList);
  45. /*---------------Print file list_to delete---*/
  46.         for (Map.Entry<String, String> entry : fileList.entrySet()) {
  47.             String key = entry.getKey();
  48.             String value = entry.getValue();
  49.             System.out.println("key, " + key + " value " + value);
  50.         }
  51. /*---------------------------------------------*/
  52.         reader.close();
  53.     }
  54.     public static  String returnExt (String someName) {
  55.         int i = someName.lastIndexOf('.');
  56.         return someName.substring(i+1);
  57.     }
  58.  
  59.     private static HashMap<String, String> sortByComparator(Map<String, String> unsortMap) {
  60.  
  61.         // Convert Map to List
  62.         List<Map.Entry<String, String>> list =
  63.                 new LinkedList<Map.Entry<String, String>>(unsortMap.entrySet());
  64.  
  65.         // Sort list with comparator, to compare the Map values
  66.         Collections.sort
  67.                 (list, new Comparator<Map.Entry<String, String>>() {
  68.             public int compare(Map.Entry<String, String> o1,
  69.                                Map.Entry<String, String> o2) {
  70.                 return (o1.getValue()).compareTo(o2.getValue());
  71.             }
  72.         });
  73.         // Convert sorted map back to a Map
  74.         HashMap<String, String> sortedMap = new LinkedHashMap<String, String>();
  75.         for (Iterator<Map.Entry<String, String>> it = list.iterator(); it.hasNext();) {
  76.             Map.Entry<String, String> entry = it.next();
  77.             sortedMap.put(entry.getKey(), entry.getValue());
  78.         }
  79.         return sortedMap;
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement