Advertisement
jaVer404

level18.lesson10.home10(pre_beta and wrong way)

Jan 15th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.79 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);//Now we have sorted map (by value)
  45.  
  46.  
  47. /*---------------Print file list_to delete---*/
  48.         for (Map.Entry<String, String> entry : fileList.entrySet()) {
  49.             String key = entry.getKey();
  50.             String value = entry.getValue();
  51.             System.out.println("key, " + key + " value " + value);
  52.         }
  53. /*---------------------------------------------*/
  54.         reader.close();
  55.     }
  56.     public static  String returnExt (String someName) {
  57.         int i = someName.lastIndexOf('.');
  58.         return someName.substring(i+1);
  59.     }
  60.  
  61.     public static HashMap<String, String> sortByComparator(Map<String, String> unsortMap) {
  62.  
  63.         // Convert Map to List
  64.         List<Map.Entry<String, String>> list =
  65.                 new LinkedList<Map.Entry<String, String>>(unsortMap.entrySet());
  66.         // Sort list with comparator, to compare the Map values
  67.         Collections.sort
  68.                 (list, new Comparator<Map.Entry<String, String>>() {
  69.             public int compare(Map.Entry<String, String> o1,
  70.                                Map.Entry<String, String> o2) {
  71.                 return (o1.getValue()).compareTo(o2.getValue());
  72.             }
  73.         });
  74.         // Convert sorted map back to a Map
  75.         HashMap<String, String> sortedMap = new LinkedHashMap<String, String>();
  76.         for (Iterator<Map.Entry<String, String>> it = list.iterator(); it.hasNext();) {
  77.             Map.Entry<String, String> entry = it.next();
  78.             sortedMap.put(entry.getKey(), entry.getValue());
  79.         }
  80.         return sortedMap;
  81.     }
  82.  
  83.     public static File createFile (String fileName) throws IOException{
  84.         File someFile = new File(fileName);
  85.         if (someFile.createNewFile()) {
  86.         }
  87.         else {
  88.             someFile.delete();
  89.             someFile.createNewFile();
  90.         }
  91.         return someFile;
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement