Naloga/Programiranje/Datoteka/Združevanje datotek/Rešitev (Java)

Iz MaFiRaWiki

  1.  
  2. import java.io.*;
  3.  
  4. public class Zdruzi {
  5. public static void main(String[] args) throws IOException {
  6. zdruzi(args);
  7. }
  8. public static void zdruzi(String[] args) throws IOException{
  9. int n = args.length;
  10. PrintWriter izhodna = new PrintWriter(new FileWriter(args[n-1]));
  11. for(int i = 0; i < n-1; i++){
  12. BufferedReader dat = new BufferedReader(new FileReader(args[i]));
  13. while(dat.ready()){
  14. String temp = dat.readLine();
  15. izhodna.println(temp);
  16. }
  17. dat.close();
  18. izhodna.println("");
  19. }
  20. izhodna.close();
  21. }
  22. }
  23.  
  24.  
  25. //dodatna naloga
  26.  
  27. import java.io.*;
  28.  
  29. public class ZdruziSPrepletanjem {
  30.  
  31. public static void main(String[] args) throws IOException {
  32. zdruzi(args);
  33. }
  34. public static void zdruzi(String[] args) throws IOException{
  35. int n = args.length;
  36. BufferedReader[] dat = new BufferedReader[n-1];
  37. PrintWriter izhodna = new PrintWriter(new FileWriter(args[n-1]));
  38. for(int i = 0; i < n-1; i++){
  39. dat[i] = new BufferedReader(new FileReader(args[i]));
  40. }
  41. int m = maxVrstic(args);
  42. for (int k = 0; k < m; k++){
  43. for (int j = 0; j < n-1; j++){
  44. if(dat[j].ready()){
  45. String temp = dat[j].readLine();
  46. izhodna.println(temp);
  47. }
  48. }
  49. }
  50. izhodna.close();
  51. }
  52. public static int prestejVrstice(String vhodna) throws IOException{
  53. BufferedReader dat = new BufferedReader(new FileReader(vhodna));
  54. int stevec = 0;
  55. while(dat.ready()){
  56. dat.readLine();
  57. stevec++;
  58. }
  59. dat.close();
  60. return stevec;
  61. }
  62.  
  63. // določi največje število v tabeli števil
  64. public static int max(int[] tab){
  65. int n = tab.length;
  66. int max = 0;
  67. for(int i = 0; i < n; i++){
  68. if(tab[i] >= max) max = tab[i];
  69. }
  70. return max;
  71. }
  72.  
  73. // izračuna največje število vrstic najdaljše datoteke
  74. public static int maxVrstic(String[] args) throws IOException{
  75. int n = args.length;
  76. int[] tab = new int[n];
  77. for(int i = 0; i < n; i++){
  78. tab[i] = prestejVrstice(args[i]);
  79. }
  80. return max(tab);
  81. }
  82. }
  83.  
Osebna orodja