الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قراءة المعلومات من ملف

مغلق
بدأه طالبة علم2 في 22 مايو 2003 · 10 رد · 1,134 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل لديكم مثال بسييط على طريقة قراءة المعلومات من ملف ، وكذلك الكتابة على ملف .

أنا بحثت ولكن وجدت أمثلة معقدة قليلا ....

جربت أحد الأمثلة _بعد ان حذفت بعض الأجزاء_ ولكن لم أعرف أين أخزن الملف ، عندما خزنته على نفس الdirectory ظهرت لي بعض الأخطاء ......

وأنا حاليا لا اعرف هل الخطأ فقط من مكان تخزين الملف أم أن الخطأ في كتابة الكود اصلا ....

لذلك لو كان لديكم مثال بسيط لأجربه وأعرف بالضبط مكان الخطأ .

#2
import javax.swing.*; 
import java.util.*;
import java.awt.*; 
import java.awt.event.*; 
import java.io.*;

	class abeer extends JFrame implements ActionListener  {
	static int r;		
 	int i;	
 static LinkedList namelist=new LinkedList();
 static LinkedList numberlist=new LinkedList();
 static LinkedList amountlist=new LinkedList();
 static LinkedList percentlist=new LinkedList();


 private JPanel nextadd  = new JPanel();
 private JPanel north  = new JPanel();
 private JPanel center  = new JPanel();

 private JPanel east  = new JPanel();
 private JPanel insideeast  = new JPanel();

 private JPanel insidenorth  = new JPanel();

 	JLabel Lname =new JLabel("Name");
 	JLabel Lnumber =new JLabel("Order Nmber");
 	JLabel  Lamount=new JLabel("Amount");
 	JLabel Lpercent =new JLabel("Percent");
 	JLabel Lresult =new JLabel("Result");

 	static JTextField name= new JTextField(); 
 	static JTextField number= new JTextField(); 
 	static JTextField amount= new JTextField(); 
 	static JTextField percent= new JTextField(); 
 	static JTextField result= new JTextField(); 
 	static JTextField search2= new JTextField(); 

 	JButton enter = new JButton("Enter New Order");


    JButton out = new JButton("See Previous Order");
    JButton next = new JButton("NEXT");
    JButton add = new JButton("ADD");
    JButton search=new JButton("Search");



    abeer() {



    	Container cp = getContentPane();

    	north.setLayout(new GridLayout(2,5));

    	enter.addActionListener(this);
    	out.addActionListener(this);
    	next.addActionListener(this);
    	add.addActionListener(this);
    	search.addActionListener(this);

    	east.setLayout(new BorderLayout());

    	insideeast.add("North", enter);

    	insideeast.add("Center", out);

    	east.add("South",insideeast);

    	nextadd.add("East",add);
    	nextadd.add("West",next);
    	nextadd.add("West",search);


    	north.add( Lname);
    	north.add( Lnumber);
    	north.add( Lamount);
    	north.add( Lpercent);
    	north.add( Lresult);


    	north.add( name);
    	north.add( number);
    	north.add( amount);
    	north.add(percent);
    	north.add( result);





    	cp.add("North", north);

    	cp.add("South", east);
    	cp.add("Center",nextadd);

    	name.setVisible(false);
    	number.setVisible(false);
    	percent.setVisible(false);
    	result.setVisible(false);
    	amount.setVisible(false);


    	add.setBackground(Color.white);
    	search.setBackground(Color.white);
    	next.setBackground(Color.white);
    	out.setBackground(Color.white);
    	enter.setBackground(Color.white);
    	north.setBackground(Color.cyan);
        east.setBackground(Color.cyan);
        nextadd.setBackground(Color.cyan);
        insideeast.setBackground(Color.cyan);
    	setSize(500,400);
    	show();
    }




    	public void actionPerformed( ActionEvent ae) 

            { 




            if (ae.getSource() == enter)
            {

            	name.setText("");
            	number.setText("");
            	amount.setText("");
            	percent.setText("");
            	name.setVisible(true);
    			number.setVisible(true);
    			percent.setVisible(true);
    			result.setVisible(true);
    			amount.setVisible(true);
    			name.setEditable(true);
    			number.setEditable(true);
    			amount.setEditable(true);
    			percent.setEditable(true);
    			result.setEditable(false);


        }

        if (ae.getSource() == out)
            {


            	name.setVisible(true);
    			number.setVisible(true);
    			percent.setVisible(true);
    			result.setVisible(true);
    			amount.setVisible(true);
    			name.setEditable(false);
    			number.setEditable(false);
    			amount.setEditable(false);
    			percent.setEditable(false);
    			result.setEditable(false);


        }


         if ((ae.getSource() == add ) && (name.isEditable()==true))
            {


            try { 
            	PrintWriter pw1 =new PrintWriter(new FileWriter("c:/name.txt",true));
            	pw1.println(name.getText());

            	PrintWriter pw2 =new PrintWriter(new FileWriter("c:/number.txt",true));
            	pw2.println(number.getText());

            	PrintWriter pw3 =new PrintWriter(new FileWriter("c:/amount.txt",true));
            	pw3.println(amount.getText());

            	PrintWriter pw4=new PrintWriter(new FileWriter("c:/percent.txt",true));
            	pw4.println(percent.getText());
            	pw1.close();
            	pw2.close();
            	pw3.close();
            	pw4.close();
            	name.setText("");
            	number.setText("");
            	amount.setText("");
            	percent.setText("");
            }

            catch(IOException e){

            	System.out.println("Error opening output file");

            }


            }

            if (ae.getSource() == search)

            {
            String inputValue = JOptionPane.showInputDialog("Please input order number");

            try{ 
            BufferedReader bf =new BufferedReader(new 
    	    FileReader("c:/number.txt"));
    	    String input=bf.readLine();
    	    StringTokenizer stk=new StringTokenizer(input);
    	    while(input != null)
    	    {
    	    	if(inputValue==input)
    	    	System.out.println(numberlist);

    	    	input=bf.readLine();

    	    }	

            }
            catch(FileNotFoundException e){
            	System.out.println("Error");
            }

            catch(IOException e){

            	System.out.println("error");

            	}
            }

        }


    public static void amountmethod(){


    	Object h=amountlist.getFirst();
    	String hh=h.toString();

    	int r=Integer.parseInt(hh);


}
    	public static void main(String []args) throws IOException{ 


		try {

			BufferedReader bf1 =new BufferedReader(new 
    	    FileReader("c:/name.txt"));
    	    String input1=bf1.readLine();
    	    StringTokenizer stk1=new StringTokenizer(input1);
    	    while(input1 != null)
    	    {
    	    	namelist.add(input1);
    	    	input1=bf1.readLine();

    	    }

    	    BufferedReader bf2 =new BufferedReader(new 
    	    FileReader("c:/number.txt"));
    	    String input2=bf2.readLine();
    	    StringTokenizer stk2=new StringTokenizer(input2);
    	    while(input2 != null)
    	    {
    	    	numberlist.add(input2);
    	    	input2=bf2.readLine();

    	    }

    	    BufferedReader bf3 =new BufferedReader(new 
    	    FileReader("c:/amount.txt"));
    	    String input3=bf3.readLine();
    	    StringTokenizer stk3=new StringTokenizer(input3);
    	    while(input3 != null)
    	    {
    	    	amountlist.add(input3);
    	    	input3=bf3.readLine();

    	    }

    	    BufferedReader bf4 =new BufferedReader(new 
    	    FileReader("c:/percent.txt"));
    	    String input4=bf4.readLine();
    	    StringTokenizer stk4=new StringTokenizer(input4);
    	    while(input4 != null)
    	    {
    	    	percentlist.add(input4);
    	    	input4=bf4.readLine();

    	    }
    	 }
    	 catch(NullPointerException e)
    	 {
    	 	System.err.println("Error");
    	 }
		catch(NoSuchElementException e)
    	 {
    	 	System.err.println("Error");
    	 }
        new abeer(); 

    }

}

اتمنى اني اكون ساعدتك

اختك عبيييير

#3
 import java.io.*;

public class ReadFile{
public static void main (String[]args) throw IOEXception {
BufferedReader readfile = new BufferedReader (new FileReader("names.txt"));
String s = readfile.readLine();
}}

في مثالي هذا قمت بإنشاء كائن يقوم بقراءة ملف وسميته readfile وقمت بإدخال اسم الملف name.txt

وانشأت سترينج وجعلته يأخذ قيمة أول سطر من الملف عن طريق readLine() ميثود

إن شاء الله تكوني فهمت:)

#4

شكرا أخت عبير على مساعداتك الدائمة لي ، فعلا استفدت من برنامجك

وكذلك شكرا لك أخ محمد المؤيد

نعم فهمت طريقة كتابة وقراءة الstring من file

ولكن انا لن أكتب أو أقرأ string أنا سأكتب object وهو يحتوي على array

وعدد آخر من المتغيرات .

سأحتاج الى استعمال ObjectOutputStream عوضا عن BufferedReader

أليس كذلك ؟؟

أنا حاليا تصورت أن يكون شكل الكود كالتالي :

ObjectOutputStream  buffer ;
buffer=new ObjectOutputStream (new FileOutputStream(filename));
myobject  record=new myobject(array and variable);
buffer.writeObject(record) ;
buffer.flush();
buffer.close();

الآن هل يوجد خطأ في ترتيب الأوامر ، أو طريقة الكتابة .

أنا عندما أضفت هذا الكود الى برنامجي ظهرت لي بعض الأخطاء وكلها متعلقة بالجملة التالية :

buffer=new ObjectOutputStream (new FileOutputStream(filename));

أرجو المساعدة قدر المستطاع ،اذا لم تكن الفكرة المطلوبة واضحة ،سأعيد ارسال الملفات من نفس البرنامج الذي أعمل عليه .

#6

هل ممكن تكتبي البر نامج كاملا حتى استطيع ان اقول لك اين الخطا

اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#7

صعب أني أضع كل البرنامج ، البرنامج حاليا وصل الى 76 ملف !!!

لكن سأضع الملفات الخاصة بهذا الأمر فقط ....

وشكرا على مساعدتكم

#8

for read from file or writ in file see the link

http://www.arabteam2000.com/vb/showthread....&threadid=26850

if you want to write one object in file then write evry attribut in the File as String .

I have to write Example later

اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#9

عذرا لقلة الشرح فانا اكتب بالماوس

ولكن مستعد للاجابة على اي استفسار حتى عن طريق الماسنجر في Yahoo

package books;

import java.io.*;
import java.util.*;

public class Book
{
    protected int nr;
    protected String titel;
    protected double price;
    protected Vector autors;

    Book(int nr,String titel, double price)
    {
        this.nr=nr;
        this.titel=titel;
        this.price=price;
        autors=new Vector();

    } 
    Book(String describe)
    {
        this.nr=0;
        this.titel="";
        this.price=0;
        autors=new Vector();
        if(describe!=null&&describe.length()>0&&describe.trim().length()>0)
        {
        try
        {
            StringTokenizer st = new StringTokenizer(describe,"|");
            int i=-1;
             while (st.hasMoreTokens()) 
            {  
                String x = st.nextToken();
                switch(++i)
               {
                    case 0:this.nr=Integer.parseInt(x);break;
                    case 1:this.price=Float.parseFloat(x);break;
                    case 2:this.titel=x;break;
                    default:autors.addElement(x);break;
               }
            }
         }
         catch(Exception e)
        {
            System.out.println(e.toString());
        }
      }

    }

    public void addAutor(String name)
    {
        this.autors.addElement(name);
    }

    public String getDescribe()
    {
        String temp=""+nr+"|"+price+"|"+titel;
        for(int i=0;i           temp+=("|"+(String)autors.elementAt(i));
        return temp;   
    }

}

package books;
import java.io.*;
import java.util.*;
import books.*;

public class Library  {


    FileReader _idocfile=null;
    BufferedReader _buffin=null;

     FileWriter _outdocfile = null;
     BufferedWriter _buffout = null;

    String _inFileName=null;
    String _outFileName=null;

    Vector books;
    Library()
    {
        books=new Vector();
    }

    public void outBooks()
    {
          Book mybook=null;
         for(int i=0;i         {
             mybook=(Book)books.elementAt(i); 
             System.out.println(mybook.getDescribe()); 

         }

    } 

public void writeFile(String str)
{
    this._outFileName=str;
     try
        {
            Book mybook=null;
            _outdocfile = new FileWriter(_outFileName);
            _buffout = new BufferedWriter(_outdocfile);
            for(int i=0;i            {
               _buffout.newLine();
              mybook=(Book)books.elementAt(i);  
             _buffout.write(mybook.getDescribe());
            }
        }
       catch (FileNotFoundException e)
         {
            System.out.println(e.toString());
         }
          catch (IOException e)
        {   

          System.out.println(e.toString());
        }
       try
       {    _buffout.close();
            _outdocfile.close();
       }
       catch(Exception e)
       {
        System.out.println(e.toString());
       }

   }
   public void readFile(String filename)
   {

        _inFileName=filename;
        String quell ="";
        String in;
        try
        {
            _idocfile = new FileReader(_inFileName);
            _buffin = new BufferedReader(_idocfile);
            StringBuffer strBuf=new StringBuffer();
            while ((in = _buffin.readLine())!= null)                        
            {                           
                    if(in!=null&&in.length()>0&&in.trim().length()>0)
                    {
                        Book mybook=new Book(in);
                              this.books.addElement(mybook);
                    }
            }


        }
        catch (FileNotFoundException e)
        {
            System.out.println(e.toString());
        }
        catch (Exception e)
        {   
            System.out.println(e.toString());

        }
        finally
        {
            try
            {
                _buffin.close();
                _idocfile.close();     
            }
            catch (Exception e)
            {
                 System.out.println(e.toString());
            }
        }

   }

    public static void main(String args[]) 
    {
        Library lib1=new Library();
        Book b1=new Book(1,"JAVA in 2006",25.50);
        b1.addAutor("Khwlani Khaled");
        b1.addAutor("java man");

        Book b2=new Book(10,"JAVA in Futcher",40.50);
        b2.addAutor("Al-Khwarizmy Mohammed");
        b2.addAutor("Ibn Sina");

        lib1.books.addElement(b1);
        lib1.books.addElement(b2);
        lib1.outBooks();
        lib1.writeFile("mylibrary.txt");
        // this library is created from File
        Library lib2=new Library();
        lib2.readFile("mylibrary.txt");
        lib2.outBooks();
     } 
}
اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#10

الطريقة السابقة غير عملية ولكنها مفيدة للتعلم

اما ماتحتاجينه فهو الاصدار الثاني من هذاالبرنامج

package books;
import java.io.*;
import java.util.*;
import books.*;

public class Library2  implements Serializable {
    Vector books;
    String name;

    Library2()
    {
        books=new Vector();
        name=null;

    }
    public void setName(String str)
    {
        name=str;
    }
    public String getName()
    {
        return name;
    }
    public void outBooks()
    {
          Book mybook=null;
         for(int i=0;i         {
             mybook=(Book)books.elementAt(i); 
             System.out.println(mybook.getDescribe()); 

         }

    } 


   public static void writeFileAsObject(String str,Library2 lib)
   {
        String _outFileName=str;
     try
        {
            FileOutputStream ostream = new FileOutputStream(_outFileName);
	        ObjectOutputStream outObject = new ObjectOutputStream(ostream);
	        outObject.writeObject(lib);
            outObject.flush();
            ostream.close();

        }
       catch (FileNotFoundException e)
         {
            System.out.println(e.toString());
         }
          catch (IOException e)
        {   

          System.out.println(e.toString());
        }
   }

   public static Library2 readFileAsObject(String filename)
   {
        Library2 lib=null;
        String quell ="";
        String in;
        FileInputStream fis=null;
        ObjectInputStream ois =null;
        try
        {
             fis = new FileInputStream(filename);
	         ois = new ObjectInputStream(fis);
	         lib=(Library2)ois.readObject();

        }
        catch (FileNotFoundException e)
        {
            System.out.println(e.toString());
        }
        catch (Exception e)
        {   
            System.out.println(e.toString());

        }
        finally
        {
            try
            {
                ois.close();     
            }
            catch (Exception e)
            {
                 System.out.println(e.toString());
            }
        }
    return lib;
   }

    public static void main(String args[]) 
    {
        Library2 lib1=new Library2();
        lib1.setName("Amr Al-Khwlani");
        Book b1=new Book(1,"JAVA in 2006",25.50);
        b1.addAutor("Khwlani Khaled");
        b1.addAutor("java man");

        Book b2=new Book(10,"JAVA in Futcher",40.50);
        b2.addAutor("Al-Khwarizmy Mohammed");
        b2.addAutor("Ibn Sina");

        lib1.books.addElement(b1);
        lib1.books.addElement(b2);
        lib1.outBooks();
        Library2.writeFileAsObject("mylibrary2.txt",lib1);

        // this library is created from File

        Library2 lib3=Library2.readFileAsObject("mylibrary2.txt");
        if(lib3!=null)
        {
          System.out.println(lib3.getName());
          lib3.outBooks();
        }

     } 
}

بالنسبة لملف Book.java سوى تعديل السطر الاول كما يلي

الرجاء الدعاء لنا جميعا بالتوفيق

public class Book implements Serializable
اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#11

شكرا جزيلا لك أخ khwlani ، وجزاك الله خيرا على هذا الجهد .....

أنا حاليا احاول أن أطبّق نفس الطريقة على برنامجي ، اذا واجهتني أي مشاكل

سأرسل لك .

أسأل الله أن يسهّل لك امورك ، ويوفقك في الدنيا والآخرة .

وفق الله الجميع لما يحبه ويرضاه ..............

هذا الموضوع مغلق.

مواضيع مشابهة