17 Mayıs 2012 Perşembe

Java'da herhangi bir dosya nasıl byte'a çevrilir? (how to convert a file to byte array)

//Dosyanın yolu verilir ve yeni bir file elde edilir
   File file = new File(".././dosyaAdi.xls");

   FileInputStream fis = new FileInputStream(file);
   ByteArrayOutputStream bos = new ByteArrayOutputStream();
   byte[] buf = new byte[1024];
   try {
    for (int readNum; (readNum = fis.read(buf)) != -1;) {
     bos.write(buf, 0, readNum); // no doubt here is 0
    }
   } catch (IOException ex) {
    throw new java.lang.IllegalStateException("Hatalı içerik!");
   }
   
   byte[] byteFile = bos.toByteArray();

11 Mayıs 2012 Cuma

List ve Set arasındaki fark

Bildiğimiz gibi elma ve armut bir birinden çoook farklı iki meyvedir. :) Bugün bahsedeceğim başlığın konusu bildiğim ama benim bazen "acaba hangisiydi!" dediğim bir konu aslında. Bir daha unutmamak adına bu bloga yazmaya karar verdim. Aslında çok basit: Her nesneyi eklemek istiyorsanız List'i, her aynı nesneden sadece birini eklemek istiyorsanız Set'i kullanıyoruz. Örnekle açıklayacak olursak,


public static void main(String[] args) {
  List stringList = new ArrayList();
  stringList.add("aaa");
  stringList.add("aaa");
  stringList.add("bb");
  stringList.add("cc");
  System.out.println("String List :" + stringList.toString());
  
  Set stringSet = new HashSet();
  stringSet.add("aaa");
  stringSet.add("aaa");
  stringSet.add("bb");
  stringSet.add("cc");
  System.out.println("String Set :"+ stringSet.toString());
 }


Bunu çalıştırdığımda çıktı aşağıdaki gibi olacaktır.

String List : [aaa, aaa, bb, cc]
String Set : [aaa, bb, cc] 
Eğer listenizi List tipinden oluşturursanız, içine eklediğiniz tüm String tipindeki nesneleri kabul edecektir. Ama listenizin içinde her birinden bir tane olacak şekilde nesneler bulunsun istiyorsanız o zaman Set kullanmanızı öneririm.