چگونگي نوشتن و خواندن كاراكترهاي فارسي در جاوا

سايت مرجع زبان برنامه نويسي جاوا        Java.TadbirPoya.ir> Articles> Java SE> File and Folder> How To Write and Read UTF-8 Encoded in java 

 استفاده از كاراكترهاي فارسي يا UTF-8 براي نوشتن و خواندن داده ها در جاوا

 

 

تکنولوژيهای جاوا
Java SE
Java EE
Java ME
JasperReports

 

لينك هاي مفيد
تدبيرگران پوياپرداز
دانلود هاي جاوا
آموزش جاوا
بازگشت
خانه

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 شماره مقاله  :   45

      تاريخ ايجاد :      1388/06/03

        تاريخ ويرايش :   1388/06/03

        دفعات بروز رساني :    0 

  نويسنده : سيد علي عبدالهي پور

 

  چگونه در جاوا در يك فايل با حروف فارسي بنويسيم و بخوانيم؟

 

يكي از مباحث مهم در برنامه نويسي جاوا براي برنامه نويسان فارسي زبان، استفاده از كاراكترهاي زبان فارسي مي باشد. انجام چنين عملي تقريبا در تمام تكنولوژي هاي جاوا با مشكل روبرو مي باشد. در اين مقاله راه حل اين مشكل را براي نوشتن و خواندن در يك فايل مورد بررسي قرار مي دهيم.

براي شروع كار، ابتدا قصد داريم تا در يك فايل جمله فارسي زير را بنويسيم.

به سايت مرجع جاوا خوش آمديد.

به گونه اي كه وقتي فايل حاصل را باز مي كنيم جمله فوق با حروف فارسي نمايش داده شده باشد و قابل خواندن باشد. جهت انجام چنين كاري كافيست از كدينگ UTF-8 استفاده نماييم. در اين سيستم هر كاراكتر از هشت بيت يا يك بايت تشكيل مي شود. براي اينكه بتوان در يك فايل با كاركترهاي مربوط به كدينگ UTF-8 نوشت راه هاي مختلفي وجود دارد. يكي از اين موارد استفاده از تركيب متدهاي زير است:

 BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF8"));

در ادامه متن كامل برنامه WriteUTF8.java كه در آن نحوه استفاده از UTF-8 نمايش داده شده است را مشاهده مي نماييد.

 

import java.io.*;

public class WriteUTF8{
   public static void main(String[] args)throws IOException{
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      System.out.print("Enter File name : ");
      String str = in.readLine();
      File file = new File(str);
      if(!file.exists()){
            System.out.println("File does not exist");
            System.exit(0);
      }else{
            try{
                  BufferedWriter out = new BufferedWriter(new OutputStreamWriter
                                                                           (new FileOutputStream(file),"UTF8"));
         
        out.write("به سايت مرجع جاوا خوش آمديد");
                  out.close();
                  System.out.println("Written Process Completed.");
            }catch(UnsupportedEncodingException ue){
                  System.out.println("Not supported : ");
            }catch(IOException e){
                  System.out.println(e.getMessage());
         }
      }
   }
}

 

براي اجراي اين برنامه ابتدا يك فايل متني در مسيري دلخواه ايجاد نماييد. سپس برنامه را اجرا نموده و مسير فايل فوق را وارد كنيد. با انجام اين عمل برنامه جمله فارسي را درون فايل مي نويسد.

Write and Read UTF-8 Encoded

 

حال نوبت به آن مي رسد تا جمله فوق را توسط برنامه ديگري بخوانيم و در يك Message Box نمايش دهيم. انجام اين كار نيز مانند بخش قبل بوده و فقط از تركيب زير براي خواندن كاركترهاي UTF-8 موجود در فايل استفاده مي نماييم.

BufferedReader i = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF8"));

 

import java.io.*;
import javax.swing.JOptionPane;

public class ReadEncodedFarsi{
   public static void main(String[] args)throws IOException{
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      System.out.print("Enter File name : ");
      String str = in.readLine();
      File file = new File(str);
      if(!file.exists()){
            System.out.println("File does not exist");
            System.exit(0);
      }else{
            try{
                  BufferedReader i = new BufferedReader(new InputStreamReader
                                                                            (new FileInputStream(file),"UTF8"));

                  String str1 = i.readLine();
                  JOptionPane.showMessageDialog(null, str1);
                  System.out.println("File Text : "+ str1);
                  System.out.println("Reading Process Completly Successfully.");
            }catch(UnsupportedEncodingException ue){
                  System.out.println("Not supported : ");
            }catch(IOException e){
                  System.out.println(e.getMessage());
            }
      }
   }
}

خروجي اين برنامه بصورت زير مي باشد.

Write and Read UTF-8 Encoded

دانلود برنامه هاي مورد استفاده در اين مقاله

مطالب موجود در اين سايت به جهت ارتقاء سطح علمي برنامه نويسان جاوا تهيه و تنظيم شده است. در صورت تمايل مي توانيد مطالب خود را در جهت اصلاح يا ارتقاء مقالات موجود و يا ايجاد مقالات جديد به آدرس ايميل زير ارسال نماييد.

 JArticles@TadbirPoya.ir

استفاده از مطالب موجود در سايت با ذكر منبع بلامانع است.

Copyright @2008-2009 TadbirPoya.ir Co.All rights reserved