Java-Snippets
Eine Snippet-Sammlung für Java.
Links:
- Tutorial Thread-Executors
- Wiki-Artikel Making HTTPS call using Apache HttpClient
Thread-Dump ausgeben
- Windows / Linux:
Strg
+Pause
- Mac:
Ctrl
+\
(also:Ctrl
+Alt
+Shift
+7
)
Read/Write-Lock
import java.util.concurrent.locks.ReentrantReadWriteLock;
class MyClass {
private ReentrantReadWriteLock lock;
public MyClass() {
lock = new ReentrantReadWriteLock();
}
public read() {
lock.readLock().lock();
try {
// Do read operation
} finally {
lock.readLock().unlock();
}
}
public write() {
lock.writeLock().lock();
try {
// Do write operation
} finally {
lock.writeLock().unlock();
}
}
public readWithUpgrade() {
lock.readLock().lock();
try {
// Do read operation
if (needWriteLock) {
// Change to write lock
lock.readLock().unlock();
lock.writeLock().lock();
try {
// Do write operation
} finally {
// Down-grade lock
lock.readLock().lock();
lock.writeLock().unlock();
}
}
// Do read operation
} finally {
lock.readLock().unlock();
}
}
}
XML lesen/schreiben
XML lesen:
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.OutputFormat;
class MyClass {
@SuppressWarnings("rawtypes")
private void readXml() {
// Load XML file
File xmlFile = new File(...);
Element rootElem = new SAXReader().read(syncXmlFile).getRootElement();
// Read XML file
Iterator someChildIter = rootElem.elementIterator("someChild");
while (someChildIter.hasNext()) {
Element someChildElem = (Element) someChildIter.next();
String myAttr = someChildElem.attributeValue("myAttr");
}
}
}
XML schreiben:
import org.apache.commons.io.IOUtils;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
class MyClass {
private void writeXml() {
String encoding = "utf-8";
Document doc = DocumentFactory.getInstance().createDocument();
doc.setXMLEncoding(encoding);
Element rootElem = doc.addElement("myroot");
doc.setRootElement(rootElem);
// Fill DOM
...
// Write XML file
File xmlFile = new File(...);
boolean prettyPrint = true;
OutputStream stream = null;
Writer writer = null;
try {
stream = new FileOutputStream(xmlFile);
writer = new OutputStreamWriter(stream, encoding);
XMLWriter xmlWriter;
if (prettyPrint) {
xmlWriter = new XMLWriter(writer, OutputFormat.createPrettyPrint());
} else {
xmlWriter = new XMLWriter(writer);
}
xmlWriter.write(doc);
} finally {
IOUtils.closeQuietly(writer);
IOUtils.closeQuietly(stream);
}
}
}