Advertisement
Hiitsu

Pliki

Jun 18th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.59 KB | None | 0 0
  1. // Main
  2. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.concurrent.ArrayBlockingQueue;
  6. import java.util.concurrent.BlockingQueue;
  7.  
  8. public class Main {
  9.  
  10.     public static void main(String[] args) throws IOException, InterruptedException {
  11.         if
  12.                 (args.length ==0)
  13.         {
  14.             System.err.println("Nie podano scieżki ani ilości plików");
  15.             System.exit(0);
  16.         }
  17.         int ilosc_plikow;
  18.         System.out.println("args " + args[0]);
  19.         String sciezka = (args[0]);
  20.         ilosc_plikow = Integer.parseInt(args[1]);
  21.  
  22.         int pojemnosc = 4;
  23.         BlockingQueue<File> kolejka = new ArrayBlockingQueue<File>(pojemnosc);
  24.  
  25.         int liczba_wątków = 4;
  26.  
  27.  
  28.  
  29.         Sort[] watki = new Sort[liczba_wątków];
  30.         for (int i = 0; i < watki.length; i++) {
  31.             watki[i] = new Sort("Watek" +i, sciezka, kolejka);
  32.             watki[i].start();
  33.  
  34.         }
  35.  
  36.         Utworz_pliki Up = new Utworz_pliki(sciezka, ilosc_plikow);
  37.         File file = new File(sciezka);
  38.         if (file.isDirectory()) {
  39.             File[] files = file.listFiles();
  40.             for (File f : files) {
  41.                 System.out.println(f.getName());
  42.                 kolejka.put(f);
  43.  
  44.     }
  45.  
  46.         }
  47.          }}
  48. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
  49. // Utworz pliki
  50. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
  51. import java.io.*;
  52. import java.util.Random;
  53.  
  54. public class Utworz_pliki {
  55. public String sciezka;
  56. public int ilosc_plikow;
  57. public Utworz_pliki(String sciezka,int ilosc_plikow) throws IOException {
  58. this.sciezka = sciezka;
  59. this.ilosc_plikow=ilosc_plikow;
  60.  
  61.  
  62.     PrintWriter writer;
  63.     Random los = new Random();
  64.     int wielkosc_plikow = 250;
  65.     int decrement = wielkosc_plikow/ilosc_plikow;
  66.  
  67.     for(int i = 1;i<=ilosc_plikow;i++){
  68.         writer = new PrintWriter(sciezka + "Dokument"+i+".txt");
  69.         for(int j=0;j<wielkosc_plikow;j++){
  70.         int n =los.nextInt(100)+1;
  71.         writer.println(n);
  72.  
  73.     }
  74.     writer.close();
  75.     wielkosc_plikow=wielkosc_plikow-decrement;
  76.  
  77.     }
  78.  
  79.     }
  80. }
  81.  
  82. /////////////////////////////////////////////////////////////////////////////////////////////////////
  83. // Sort
  84. /////////////////////////////////////////////////////////////////////////////////////////////////////
  85. import java.io.*;
  86. import java.util.ArrayList;
  87. import java.util.Arrays;
  88. import java.util.Scanner;
  89. import java.util.*;
  90. import java.util.concurrent.ArrayBlockingQueue;
  91. import java.util.concurrent.BlockingQueue;
  92.  
  93.  
  94. public class Sort extends Thread{
  95.     private BlockingQueue<File> kolejka;
  96.  
  97.     String sciezka;
  98.     public Sort(String _nazwa, String sciezka, BlockingQueue<File> _kolejka){
  99.         super(_nazwa);
  100.         this.sciezka = sciezka;
  101.         kolejka = _kolejka;
  102.  
  103.     }
  104.  
  105.     FileWriter zapis = null;
  106.  
  107.  
  108.     public void run(){
  109.         try{
  110.             while(true){
  111.                 File z_kolejki = kolejka.take();
  112.                 Scanner sc = null;
  113.                 try{
  114.                     sc = new Scanner(z_kolejki);
  115.  
  116.                 } catch (FileNotFoundException e) {
  117.                     e.printStackTrace();
  118.                 }
  119.                 ArrayList<String> lista=new ArrayList<String>();
  120.                 while(sc.hasNext())
  121.                 {
  122.                     lista.add(sc.next());
  123.                 }
  124.                 sc.close();
  125.                
  126.                 ArrayList<Integer> liczby = new ArrayList<Integer>();
  127.                 for(String number : lista)
  128.                 {
  129.                     liczby.add(Integer.parseInt(number));
  130.                
  131.                 Collections.sort(liczby);
  132.  
  133.                 System.out.println(Thread.currentThread().getName()+ " obsluzyl" + " sortowanie: " + liczby.toString());
  134.                 try {
  135.                     zapis = new FileWriter(z_kolejki);
  136.                 } catch (IOException e) {
  137.                     e.printStackTrace();
  138.                 }
  139.  
  140.                 try {
  141.                     zapis.write(String.valueOf(liczby));
  142.                 } catch (IOException e) {
  143.                     e.printStackTrace();
  144.                 }
  145.                 try {
  146.                     zapis.close();
  147.                 } catch (IOException e) {
  148.                     e.printStackTrace();
  149.                 }
  150.             }
  151.  
  152.  
  153.         } catch (InterruptedException e) {e.printStackTrace();}
  154.  
  155.  
  156.  
  157. }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement