Commit fb3ebe68 by patryk

Dalsze przykłady Apache Commons

parent f3f7dd95
...@@ -18,7 +18,21 @@ ...@@ -18,7 +18,21 @@
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>3.14.0</version> <version>3.14.0</version>
</dependency> </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package apacz;
import java.io.File;
import java.io.IOException;
import java.nio.file.attribute.FileTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import org.apache.commons.io.FileUtils;
public class CommonsIO {
public static void main(String[] args) {
// Sprawdźmy datę modyfikacji pliku pom.xml
File plik = new File("pom.xml");
try {
FileTime fileTime = FileUtils.lastModifiedFileTime(plik);
System.out.println(fileTime);
ZonedDateTime dt = ZonedDateTime.ofInstant(fileTime.toInstant(), ZoneId.systemDefault());
System.out.println(dt);
} catch (IOException e) {
e.printStackTrace();
}
}
}
package apacz;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
public class CommonsLang {
public static void main(String[] args) {
String[] t = {null, "Ala", "Agnieszka", "Zenon", "Żaneta", "Łukasz", "Łucja", "ala", "łukasz", "", " "};
// Gdy w Javie porównujemy Stirngi (i inne obiekty), robimy to za pomocą equals.
// Gdybyśmy próbowali wywołać equals na zmiennej, która może by nullem, to doprowadzimy do błędu NPE
// for(int i = 2; i >= 0; i--) {
// if(t[i].equals("Ala")) {
// System.out.println(i + " to jest Ala");
// } else {
// System.out.println(i + " to nie jest Ala");
// }
// }
// Dlatego zalecane jest, aby zmienne porównywać z konkretnymi napisami w tej kolejności:
// "Napis".equals(zmienna)
// a nie zmienna.equals("Napis")
for(int i = 2; i >= 0; i--) {
if("Ala".equals(t[i])) {
System.out.println(i + " to jest Ala");
} else {
System.out.println(i + " to nie jest Ala");
}
}
// Jednak czasami porównujemy dwie zmienne, z których obie mogą być nullem, wtedy jest trudniej.
// Biblioteka commons-lang i klasa StringUtils pomaga w operacjach porównywania, sprawdzania czy napis jest pusty itd.
System.out.println();
// Porównania stringów, które są odporne na wartości null (nie pojawiają się błędy)
System.out.println(StringUtils.equalsIgnoreCase(t[0], t[7])); // false, bo null != ala
System.out.println(StringUtils.equalsIgnoreCase(t[1], t[7]));
System.out.println(StringUtils.equalsIgnoreCase(t[5], t[8])); // Łukasz == łukasz
System.out.println();
System.out.println(StringUtils.isEmpty(t[0])); // tak, bo jest nullem
System.out.println(StringUtils.isEmpty(t[9])); // tak, bo jest pustym stringiem
System.out.println(StringUtils.isEmpty(t[10])); // false, bo zawiera 3 spacje
System.out.println(StringUtils.isBlank(t[10]));
System.out.println(StringUtils.isBlank(t[0]));
System.out.println(StringUtils.isBlank(t[1]));
System.out.println();
// są też wersje dla wielu wartości na raz
System.out.println(StringUtils.isAllBlank(t[0], t[9], t[10]));
System.out.println(StringUtils.isAllBlank(t[0], t[8], t[10]));
// praktyczne zastosowanie: walidacja danych wprowadzonych przez użytkownika:
String imie = "Ala", nazwisko = "Kowalska", adres = " ";
if(StringUtils.isAnyBlank(imie, nazwisko, adres)) {
System.out.println("Nie podałeś danych");
} else {
// robimy coś ważnego
}
System.out.println();
for (String s : t) {
if(StringUtils.isNotEmpty(s)) {
System.out.println("|" + StringUtils.center(s, 20, '.') + "|");
}
}
System.out.println();
System.out.println(ObjectUtils.firstNonNull(t));
}
}
package apacz;
import java.util.Arrays;
import org.apache.commons.math3.stat.StatUtils;
public class CommonsMath {
public static void main(String[] args) {
double[] a = {2, 10, 4.44, 3.14, 0, 25.5};
System.out.println(Arrays.toString(a));
double srednia = StatUtils.mean(a);
System.out.println(srednia);
}
}
package apacz;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
public class CzytajPlikCSV {
public static void main(String[] args) {
File plik = new File("emps.csv");
CSVFormat format = CSVFormat.Builder.create()
.setDelimiter(';')
.setHeader().setSkipHeaderRecord(true)
.build();
try(CSVParser parser = CSVParser.parse(plik, Charset.forName("UTF-8"), format)) {
for(CSVRecord record : parser) {
// System.out.println(record);
// System.out.printf("Pracownik %s %s (%s) zarabia %s\n",
// record.get(1), record.get(2), record.get(3), record.get(4));
System.out.printf("Pracownik %s %s (%s) zarabia %s\n",
record.get("first_name"), record.get("last_name"), record.get("job_title"), record.get("salary"));
}
} catch (IOException e) {
e.printStackTrace();
};
}
}
package apacz;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
public class EksportCSV {
public static void main(String[] args) {
System.out.println("Zadaję zapytanie");
try(Connection c = DriverManager.getConnection("jdbc:sqlite:hr.db");
PreparedStatement stmt = c.prepareStatement("SELECT * FROM employees");
ResultSet rs = stmt.executeQuery()) {
System.out.println("Zapisuję do pliku");
eksportujDoCSV(rs, "eksport.csv");
System.out.println("Gotowe");
} catch (SQLException | IOException e) {
e.printStackTrace();
}
}
static void eksportujDoCSV(ResultSet rs, String sciezka) throws SQLException, IOException {
CSVFormat format = CSVFormat.Builder.create()
.setDelimiter(';')
.setHeader(rs)
.build();
try(PrintWriter out = new PrintWriter(sciezka);
CSVPrinter printer = new CSVPrinter(out, format)) {
printer.printRecords(rs);
}
}
}
package apacz;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class SkopiujKatalog {
// W standardowej bibliotece Javy nie ma operacji, która kopiowałaby na dysku cały katalog z plikami.
// W tym przykładzie użyjemy biblioteki Apache Commons IO, która taką operację zawiera.
public static void main(String[] args) {
try {
File zrodlo = new File("src/main/java");
File cel = new File("/home/patryk/Pulpit/zrodla");
FileUtils.copyDirectory(zrodlo, cel);
System.out.println("Gotowe");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment