29 Nisan 2016 Cuma

SAX DefaultHandler Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.xml.sax.helpers.DefaultHandler;
characters metodu
Tag arasındaki veriyi verir. Şöyle yaparız.
StringBuilder buf = new StringBuilder();

@Override
public void characters(char[] ch, int start, int length) {
  buf.append(ch, start, length);
  ...
}
endDocument metodu
İmzası şöyle.
@Override
public void endDocument() throws SAXException {
endElement metodu
qname XML tag'ini verir. Şöyle yaparız.
@Override
public void endElement(String uri, String localName, String qName)
        throws SAXException {
  if (qName.equals("parent")) {
    ...
  } else if (qName.equals("child1")) {
    ...
  } else if (qName.startsWith("child")) {
    ...
  }
}
startElement metodu
qname XML tag'ini verir. Şöyle yaparız.
@Override
public void startElement(String uri, String localName, String qName,
        Attributes attributes) throws SAXException {
  if (qName.equals("parent")) {
   ...
  } else if (qName.equals("child1")) {
    ...
  } else if (qName.startsWith("child")) {
    ...
  }
}

28 Nisan 2016 Perşembe

SecretKey Arayüzü

SecretKey
Giriş
Şu satırı dahil ederiz.
import javax.crypto.SecretKey;
Bir arayüzdür.

constructor
Şöyle üretilir.
KeySpec keySpec = ...;
SecretKeyFactory keyFactory = ...;
SecretKey key = keyFactory.generateSecret(keySpec);

AES
Anahtar uzunlukları 128 (16 byte) , 192 (24 byte) , and 256 (32 byte) bit olabilir.

Şöyle yaparız.
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256);  //using AES-256
SecretKey key = keyGen.generateKey();  //generating key
Şöyle yaparız.
byte[] keyBytes = "1234123412341234".getBytes();  //example
SecretKey key = new SecretKeySpec(keyBytes, "AES");



CipherOutputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.crypto.CipherOutputStream;
constructor
Şöyle yaparız.
Cipher cipher = ...;
try(FileOutputStream fos = new FileOutputStream(...)){
  try(CipherOutputStream cos = new CipherOutputStream(fos, cipher)){
    ...
  }
 }
}
write metodu
Şöyle yaparız.
byte buf[] = ...;
cos.write(buf);

CipherInputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.crypto.CipherInputStream;
constructor
Şöyle yaparız.
try(FileInputStream fis = new FileInputStream(...)){
  Cipher cipher = ...;
  try(CipherInputStream cis = new CipherInputStream(fis, cipher)){
    ...
  }
}
read metodu
Şöyle yaparız.
byte buf[] = new byte[4096];
while((read = cis.read(buf)) != -1)  //reading from file
  ...
}

27 Nisan 2016 Çarşamba

PrivateKey Arayüzü

PrivateKey
Bir arayüzdür.

RSAPrivateKey Sınıfı
Constructor
Şöyle yaparız.
KeyFactory keyFactory = KeyFactory.getInstance("RSA", "BC");
RSAPrivateKeySpec privKeySpec = new RSAPrivateKeySpec(new BigInteger(
        "12345678", 16), new BigInteger("12345678",
        16));

RSAPrivateKey privKey = (RSAPrivateKey) keyFactory.generatePrivate(privKeySpec);


21 Nisan 2016 Perşembe

FileInputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.FileInputStream;
constructor - string path
Şöyle yaparız.
String fileName = "C:/text.txt";
InputStream fin = new FileInputStream(fileName);
close metodu
Şöyle yaparız.
fin.close();
read metodu
Bir byte okur. Şöyle yaparız.
int i = fin.read();
read metodu - array
Şöyle yaparız.
int imageLength = ...;
byte[] rawBytes = new byte[imageLength];
fin.read(rawBytes, 0, imageLength);

19 Nisan 2016 Salı

FileOutputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.FileOutputStream;
constructor - string path
Şöyle yaparız.
String path = ...;
FileOutputStream fout = new FileOutputStream(path);
close metodu
Şöyle yaparız.
fout.close();
write metodu
Bir byte yazar. Şöyle yaparız.
int i;
fout.write(i);

15 Nisan 2016 Cuma

ReadWriteLock Arayüzü - Read ve Write Farkı Gözetir ve Reentrant'tır

Giriş
Şu satırı dahil ederiz.
import java.util.concurrent.locks.ReadWriteLock;
Açıklaması şöyle. Bu arayüzü gerçekleştiren tek sınıf ReentrantReadWriteLock.
A ReadWriteLock maintains a pair of associated locks, one for read-only operations and one for writing. The read lock may be held simultaneously by multiple reader threads, so long as there are no writers. The write lock is exclusive.
Kullanım
Örnek
Şöyle yaparız
public class Foo {
  ReadWriteLock lock = new ReentrantReadWriteLock();
  Lock readLock = lock.readLock();
  Lock writeLock = lock.writeLock();

  public void write (...) {
    writeLock.lock();
    try {
      ...
    } finally {
      writeLock.unlock();
    }
  }

  public void read (...) {
    readLock.lock();
    try {
      ...
    } finally {
      readLock.unlock();
    }
  }
}