InputStream soyut sınıfının mark (int okumalimiti) ve reset() yordamları ne işe yarar, mark(int okumalimiti)-İçsel dizi kullanılarak tamponlanmış olan veriler içerisinde istenilen pozisyona işaret koyar. bunu anliyorum ama işaret koymak ne işe yariyor? bu yordamlara bağlı bir kod örneyi göstere bilirmisiniz? teşekürler

soruldu: 07 Oca '13, 06:41

AzerEkberov's gravatar image

AzerEkberov
6123
cevap kabul oranı: 0%

değiştirildi: 07 Oca '13, 06:48

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Giriş stream(akım) üzerinde bir marker yerşeltirilir. Daha sonra reset metodu kullanılarak giriş stream cursor'unun koyulan bu işaretçiye ayarlanması sağlanabilir.

Elimizde bir text dosyası olduğunu varsayalım. c:/test.txt Bu dosyanın içeriği:

ABCDE

olsun.

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

public class BufferedReaderDemo {
   public static void main(String[] args) throws Exception {

      InputStream is = null; 
      InputStreamReader isr = null;
      BufferedReader br = null;

      try{

         is = new FileInputStream("c:/test.txt");

         isr = new InputStreamReader(is);

         br = new BufferedReader(isr);

         System.out.println((char)br.read());
         System.out.println((char)br.read());

         // mark invoked at this position
         br.mark(26);
         System.out.println("mark() invoked");
         System.out.println((char)br.read());
         System.out.println((char)br.read());

         // reset() repositioned the stream to the mark
         br.reset();
         System.out.println("reset() invoked");
         System.out.println((char)br.read());
         System.out.println((char)br.read());

      } catch (Exception e) {

         // exception occurred.
         e.printStackTrace();
      }finally{

         // releases any system resources associated with the stream
         if(is!=null)
            is.close();
         if(isr!=null)
            isr.close();
         if(br!=null)
            br.close();
      }
   }
}

Derleyip çalıştırdığımızda çıkan sonuç:

A
B
mark() invoked
C
D
reset() invoked
C
D
permanent link

cevaplandı: 07 Oca '13, 07:53

MDemir's gravatar image

MDemir
2.1k173445
cevap kabul oranı: 24%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,076

Soruldu: 07 Oca '13, 06:41

Görüntüleme: 511 kez

Son güncelleme: 07 Oca '13, 07:53

powered by BitNami OSQA