Zdrojový kód k 7. prednáške

package sk.upjs.paz.prednaska07;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Arrays;

import sk.upjs.jpaz2.Turtle;

public class SmartTurtle extends Turtle {

        /**
         * metoda vrati sucet prvych k cisel v poli
         */

        public int prefixSum(int[] numbers, int k) {
                // vyriesi sa pripad null, aby nenastala vynimka
                if (numbers == null) {
                        return 0;
                }
                int result = 0;
                // minimum riesi pripad ak by bolo k mimo rozsahu pola
                for (int i = 0; i < Math.min(k, numbers.length); i++) {
                        result += numbers[i];
                }
                return result;
        }

        // najde maximum z cisel vlozenych v stringu, oddelenych medzerami
        public int maximum(String numbers) {
                // rozdelenie stringu na pole stringov podla oddelovaca - medzery
                String[] words = numbers.split(" ");

                int maximum = Integer.MIN_VALUE;
                for (int i = 0; i < words.length; i++) {

                        // pokus zmenit string na int
                        try {
                                int number = Integer.parseInt(words[i]);
                                // ak sa prevod podaril, overi sa ci mame aktualne maximum
                                if (number > maximum) {
                                        maximum = number;
                                }
                        } catch (NumberFormatException e) {
                                // v pripade vynimky sa vypise informacia
                                System.out.println("problem so slovom " + words[i] + " na indexe " + i);
                                e.printStackTrace();
                        } finally {
                                // finally blok sa vypise vzdy, tu je to len na demonstraciu
                                System.out.println("toto sa vypise vzdy");
                        }
                }

                return maximum;

        }

        /**
         * vypise zoznam suborov v danom adresari
         */

        public void ls(File folder) {
                // ak parameter neoznacuje adresar
                if (!folder.isDirectory()) {
                        return;
                }
                // zoznam nazvov suborov v adresari
                String[] names = folder.list();
                for (int i = 0; i < names.length; i++) {
                        System.out.println(names[i]);
                }
        }

        /**
         * Vypise zoznam xml suborov a ich velkosti v danom adresari
         */

        public void printXml(File folder) {
                // ak nie je na vstupe adresar
                if (!folder.isDirectory()) {
                        return;
                }

                // ziska sa zoznam suborov (vratane skrytych suborov a adresarov) v adresari
                File[] files = folder.listFiles();
                for (int i = 0; i < files.length; i++) {
                        // filter na xml podla nazvu
                        if (files[i].getName().endsWith(".xml")) {
                                System.out.println(files[i].getName() + " " + files[i].length());
                        }
                }
        }

        /**
         * zapisanie velkosti pola a hodnot z pola do zadaneho suboru
         */

        public void saveNumbersToFile(File file, int[] numbers) {
                // otvorenie printwritera - try-catch blok so zdrojmi
                try (PrintWriter pw = new PrintWriter(file)) {
                        // samotny zapis do suboru
                        pw.println(numbers.length);
                        for (int i = 0; i < numbers.length; i++) {
                                pw.print(numbers[i] + " ");
                        }
                } catch (FileNotFoundException e) {
                        e.printStackTrace();
                }
        }

}
package sk.upjs.paz.prednaska07;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

import sk.upjs.jpaz2.*;

public class Launcher {

        public static void main(String[] args) {

                SmartTurtle franklin = new SmartTurtle();

                int[] arr = { 1, 2, 3 };
                int res = franklin.prefixSum(null, -7);
                System.out.println(res);

                // 8.0 / 0 vrati Infinity, 0.0 / 0 vrati NaN - not a number
                double a = 0.0 / 0;
                System.out.println(a);

                String s = "123 32 a32 \"45 6488888888888888888888888888888888888888888888888 -23";
                System.out.println(franklin.maximum(s));

                File folder = new File("/home/miro/eclipse-workspace/PAZ1a2021/prednaska07");
                franklin.ls(folder);
                franklin.printXml(folder);

                File file = new File("hello.txt");
                /*
                PrintWriter pw = null;
                try {

                        pw = new PrintWriter(file);
                        pw.println("hello world");

                } catch (FileNotFoundException e) {
                        e.printStackTrace();
                } finally {
                        if (pw != null)
                                pw.close();
                }*/


                try (PrintWriter pw = new PrintWriter(file)) {
                        pw.println("hello");
                } catch (FileNotFoundException e) {
                        e.printStackTrace();
                }

                int[] array = { 1, 2, 8, -34 };
                franklin.saveNumbersToFile(new File("numbers.txt"), array);

        }
}