Archive for the ‘Uncategorized’ Category

فایل در جاوا

می 21, 2008

کار با فایل در جاوا بسیار راحت است چون تعداد زیادی کلاس کار با فایل در جاوا وجود دارد از جمله:

FileOutputStream file=new FileOutputStream(“path\\filename”,true);

در فایل بالا یک جریان به  فایل در محل path و نام filename برای نوشتن ایجاد شده و true درآخر سازنده به این موضوع اشاره دارد که اگر فایل وجود داشت در ادامه ی فایل شروع به نوشتن نماید . در این حالت شما برای نوشتن در فایل از متد write استفاده می کنید .

متد write یک آرایه از بایتها را برای نوشتن در فایل می پذیرد .برای نوشتن String در فایل می توان از روش زیر استفاده نمود :

String str=”java”;

file.write(str.getbytes());//تبدیل رشته به آرایه از بایتها

کلاس دیگری برای نوشتن وجود دارد RandomAccesFile می باشد که بری نوشتن درمحل دلخواه در فایل عالی است . مثلا نوشن در میانه ی فایل . شیوه تعریف آن به صورت :

RandomAccessFile file_=new RandomAccessFile(“path:\\filename”,”rw”);

که rw نمایانگر نوشتن و خواندن در فایل است که سایر رشته های قابل پردازش برای این قسمت عبارت است از :   r-فقط خواندن     W-فقط نوشتن  rw- خواندن و نوشتن است .

در جاوا واسط های InputStream ,OutputStream وجود دارند که FileOutput/InputStream از این واسط ها مشتق می شوند. دو نوع کلاس Writer/Reader وجود دارد که قابلیت ها زیادی دارند . که برای بعد!

 

 

پیمایش پیش ترتیب !

نوامبر 17, 2007

سلام

اگر ساختمان داده داشته باشيد حتما به به پيمايش هاي پيش ترتيب و پس ترتيب و ميان ترتيب بر خورد كرده ايد . براي نوشتن آنها در صورت استفاده از c/c++ يا Java از كلاس(سی ++ و جاوا) و struct  در سي براي پياده سازي استفاده مي كنيد .
به اين صورت كه يك كلاس TreeIterator (مثلا) استفاده مي كنيد و با استفاده از ارث بري  كلاسی ديگر با عنوان PostOrder یا InOrder یا 
PreOrder ساخته  که با استفاده از یک پشته و یک کلاس و یک شمارنده این عمل را انجام دهیم .
همان طور که می بینید یک پروسه ی طولانی و حتما با اشتباهات فراوان همراه است اما جند روز پیش در یک وبلاگ روشی جالب دیدیم که بدین شرح بود :

نکته : این برنامه به زبان جاواست که با اندکی تغییر برای سی++ قابل استفاده است .

 void nonrecpreorder(BinaryTree tree){
      BinaryNode currnode=tree.root;// یک گره ایجاد و مقدار آن را برابر ریشه ی درخت قرار می دهد
      while(true){                                     // یک حلقه ی بی نهایت
          if(currnode==null)                     // این شرط برای چیست؟
              break;
          //int visited=0 in the BinaryTree defined ! 
          if(currnode.left!=null && currnode.Visited!=1) //
           currnode=currnode.left;
          else if(currnode.right!=null && currnode.right.Visited!=1)
            currnode=currnode.right;
                else if(currnode.Visited==0)
                    {
                    // element defined like :      T element   //in BinaryTree
                     System.out.print(currnode.element+ ” “);
                    currnode.Visited=1;
                    }
          else
          {
                            currnode=currnode.parent;
          
           }
      }          
  }

جالب بود نه !

 

 

 

1 !

نوامبر 3, 2007

خب بعد از مدت ها شروع کردم .

در این مکان درباره همه چیز(فقط برنامه نویسی!)  حرف خواهیم (خواهم   (شما فقط نظر بدهید (((:  ) زد .

  زبانهای  C/C++  ,  java , Assembly  را با هم یاد می گیریم (منم همین طور) خب از کجا شروع کنیم ؟

  ( اگر هم کسی این روزهای اول ندید  یا خدایی نکرده نظر نداد ؛ خودم از یه جایی شروع می کنم (:  )