import org.junit.Test;
import java.io.BufferedReader;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Random;
import java.util.logging.*;
public class Chapter05 {
@Test
public void ex01to03() {
ch05.ex01to03.DoubleFileReader r = new ch05.ex01to03.DoubleFileReader();
try {
ArrayList doubles = r.readValues("docs/ch05/doube.txt") ;
for (Double d : doubles) {
System.out.println(d);
}
} catch (IOException e) {
System.err.println(e.toString());
} catch (NumberFormatException e) {
System.err.println(e.toString());
}
}
@Test
public void ex04() {
ch05.ex04.DoubleFileReader r = new ch05.ex04.DoubleFileReader();
ch05.ex04.DoubleFileReader.ReadResult result = r.readValues("docs/ch05/double.txt");
if (result.isSuccess()) {
for (double d : result.getDoubles()) {
System.out.println(d);
}
} else {
System.err.println(result.getMessage());
}
}
@Test
public void ex05() {
ch05.ex05.PlainTextCopy o = new ch05.ex05.PlainTextCopy();
try {
o.copy("docs/ch05/ex05-from.txt", "docs/ch05/ex05-to.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void ex06a() {
Path path = Paths.get("docs/ch05/double.txt");
BufferedReader in = null;
try {
in = Files.newBufferedReader(path, StandardCharsets.UTF_8);
} catch (IOException ex) {
System.err.println("Caught IOException: " + ex.getMessage());
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
// do nothing
}
}
}
}
@Test
public void ex06b() {
Path path = Paths.get("docs/ch05/double.txt");
BufferedReader in = null;
try {
in = Files.newBufferedReader(path, StandardCharsets.UTF_8);
try {
// in
} finally {
in.close();
}
} catch (IOException ex) {
System.err.println("Caught IOException: " + ex.getMessage());
}
}
@Test
public void ex06c() {
Path path = Paths.get("docs/ch05/double.txt");
try (BufferedReader in = Files.newBufferedReader(path, StandardCharsets.UTF_8);) {
// in.
} catch (IOException ex) {
System.err.println("Caught IOException: " + ex.getMessage());
}
}
@Test
public void ex10() {
ch05.ex10.Factorial f = new ch05.ex10.Factorial();
try {
BigInteger n = f.factorial(10);
System.out.println("n = " + n);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void ex12() {
ch05.ex12.Minimum o = new ch05.ex12.Minimum();
Random r = new Random();
int size = 120_000_000;
System.out.println("size = " + size);
int[] values = new int[size];
for (int i = 0; i < size; i++) {
values[i] = java.lang.Math.abs(r.nextInt());
}
long start = System.currentTimeMillis();
int min = o.min(values);
long end = System.currentTimeMillis();
System.out.println("min = " + min);
System.out.println("time = " + (end - start) + "ms");
}
@Test
public void ex13() throws IOException {
Logger logger = Logger.getLogger("org.antop.logger");
logger.setLevel(Level.FINE);
logger.setUseParentHandlers(false);
Handler handler = new ConsoleHandler();
handler.setLevel(Level.FINE);
logger.addHandler(handler);
// filter
ch05.ex13.ProhibitionFilter filter = new ch05.ex13.ProhibitionFilter("sex", "drug");
logger.setFilter(filter);
try (BufferedReader reader = Files.newBufferedReader(Paths.get("docs/ch05/text.txt"));) {
String line = null;
while ((line = reader.readLine()) != null) {
logger.warning(line);
}
}
}
@Test
public void ex14() throws Exception {
Logger logger = Logger.getLogger("org.antop.logger");
Handler handler = new FileHandler("docs/ch05/logger.html");
// formatter
Formatter formatter = new ch05.ex14.HTMLFormatter();
handler.setFormatter(formatter);
logger.addHandler(handler);
try (BufferedReader reader = Files.newBufferedReader(Paths.get("docs/ch05/text.txt"));) {
String line = null;
while ((line = reader.readLine()) != null) {
logger.info(line);
}
}
}
}