Commit a8535eb0 by Patryk Czarnik

waluty - wersje StAX

parent 438a5085
......@@ -60,6 +60,7 @@ public class Waluty2_XPath {
System.out.printf("Zajęta pamięć : %,d B%n", pamiec);
System.out.println("Count: " + count);
if(count > 0) {
System.out.println("Sum: " + sum);
System.out.println("Avg: " + (sum / count));
System.out.println("Min: " + min);
System.out.println("Max: " + max);
......
package p20_xml;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.XMLEvent;
import java.io.FileReader;
public class Waluty4_Stax {
public static void main(String[] args) {
String plik = "pliki/waluty2023.xml";
String waluta = "EUR";
System.out.println("Startujemy");
long t1 = System.nanoTime();
try {
XMLInputFactory xif = XMLInputFactory.newDefaultFactory();
XMLEventReader reader = xif.createXMLEventReader(new FileReader(plik));
double min = Double.MAX_VALUE, max = 0, sum = 0;
int count = 0;
while(reader.hasNext()) {
XMLEvent event = reader.nextEvent();
if(event.isStartElement() && event.asStartElement().getName().getLocalPart().equals("Rate")) {
boolean uwzgledniajWalute = false;
while(true) {
XMLEvent event2 = reader.nextEvent();
if(event2.isStartElement() && event2.asStartElement().getName().getLocalPart().equals("Code")) {
if(waluta.equals(reader.getElementText())) {
uwzgledniajWalute = true;
}
}
if(event2.isStartElement() && event2.asStartElement().getName().getLocalPart().equals("Mid")) {
if(uwzgledniajWalute) {
double mid = Double.parseDouble(reader.getElementText());
count++;
sum += mid;
if(mid < min) min = mid;
if(mid > max) max = mid;
}
}
if(event2.isEndElement() && event2.asEndElement().getName().getLocalPart().equals("Rate")) {
break;
}
}
}
}
long t3 = System.nanoTime();
Runtime runtime = Runtime.getRuntime();
long pamiec = runtime.totalMemory() - runtime.freeMemory();
System.out.printf("Czas łączny : %.6f s%n", (t3-t1) * 1e-9);
System.out.printf("Zajęta pamięć : %,d B%n", pamiec);
System.out.println("Count: " + count);
if(count > 0) {
System.out.println("Sum: " + sum);
System.out.println("Avg: " + (sum / count));
System.out.println("Min: " + min);
System.out.println("Max: " + max);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
package p20_xml;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLInputFactory;
import java.io.FileReader;
public class Waluty5_Stax {
public static void main(String[] args) {
String plik = "pliki/waluty2023.xml";
String waluta = "EUR";
System.out.println("Startujemy");
long t1 = System.nanoTime();
try {
XMLInputFactory xif = XMLInputFactory.newDefaultFactory();
XMLStreamReader reader = xif.createXMLStreamReader(new FileReader(plik));
double min = Double.MAX_VALUE, max = 0, sum = 0;
int count = 0;
while(reader.hasNext()) {
int event = reader.next();
if(event == XMLStreamReader.START_ELEMENT && reader.getName().getLocalPart().equals("Rate")) {
boolean uwzgledniajWalute = false;
while(true) {
reader.next();
if(reader.isStartElement() && reader.getName().getLocalPart().equals("Code")) {
if(waluta.equals(reader.getElementText())) {
uwzgledniajWalute = true;
}
}
if(reader.isStartElement() && reader.getName().getLocalPart().equals("Mid")) {
if(uwzgledniajWalute) {
double mid = Double.parseDouble(reader.getElementText());
count++;
sum += mid;
if(mid < min) min = mid;
if(mid > max) max = mid;
}
}
if(reader.isEndElement() && reader.getName().getLocalPart().equals("Rate")) {
break;
}
}
}
}
long t3 = System.nanoTime();
Runtime runtime = Runtime.getRuntime();
long pamiec = runtime.totalMemory() - runtime.freeMemory();
System.out.printf("Czas łączny : %.6f s%n", (t3-t1) * 1e-9);
System.out.printf("Zajęta pamięć : %,d B%n", pamiec);
System.out.println("Count: " + count);
if(count > 0) {
System.out.println("Sum: " + sum);
System.out.println("Avg: " + (sum / count));
System.out.println("Min: " + min);
System.out.println("Max: " + max);
}
} catch (Exception 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