CodeGym /وبلاگ جاوا /Random-FA /جاوا – نوشتن در فایل
John Squirrels
مرحله
San Francisco

جاوا – نوشتن در فایل

در گروه منتشر شد
یکی از رایج ترین وظایف در توسعه نرم افزار، توانایی خواندن و نوشتن فایل ها است. در جاوا، نوشتن در یک فایل یک فرآیند ساده است که می تواند با استفاده از کلاس ها و متدهای داخلی انجام شود. در این مقاله، نحوه نوشتن بر روی یک فایل با استفاده از جاوا را بررسی خواهیم کرد و در مورد کلاس ها و روش های مختلف درگیر بحث خواهیم کرد. جاوا کلاس های داخلی مانند FileWriter و PrintWriter را برای نوشتن در یک فایل در جاوا فراهم می کند.

جاوا رایت در فایل مثال

برای شروع، اجازه دهید به یک مثال ساده از نوشتن روی یک فایل در جاوا نگاه کنیم. در اینجا مثالی از نحوه نوشتن یک رشته در یک فایل در جاوا با استفاده از کلاس FileWriter آورده شده است :

کلاس FileWriter

کلاس FileWriter روش دیگری برای نوشتن روی فایل در جاوا است. این یک کلاس جریان کاراکتر است که به شما امکان می دهد داده های کاراکتر را در یک فایل بنویسید. در اینجا مثالی وجود دارد که نحوه استفاده از کلاس FileWriter برای نوشتن یک رشته در یک فایل را نشان می دهد:
import java.io.FileWriter;
import java.io.IOException;


// Main method for the string to file in java starts from here,
public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write text to file
        String data = "Hello, world!";

        try {
            // create a FileWriter object with the file name
            FileWriter writer = new FileWriter("output.txt");

            // write the string to the file
            writer.write(data);

            // close the writer
            writer.close();

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
در این مثال، ابتدا یک شی String به نام داده ایجاد می کنیم که حاوی متنی است که می خواهیم در یک فایل بنویسیم. سپس یک شی FileWriter با نام فایلی که می‌خواهیم روی آن بنویسیم ایجاد می‌کنیم ، در این مورد با نام output.txt . سپس از متد write() شی FileWriter برای نوشتن رشته داده در فایل استفاده می کنیم. این متد یک آرگومان String حاوی داده ها را برای نوشتن می گیرد. در نهایت، شی FileWriter را می‌بندیم تا منابع فایل آزاد شود و در صورت موفقیت‌آمیز بودن عملیات نوشتن، پیام موفقیت‌آمیز را در کنسول چاپ می‌کنیم یا در صورت وجود یک استثنا، پیام خطا را دریافت می‌کنیم. کلاس FileWriter یک راه ساده برای نوشتن داده های کاراکتر در یک فایل در جاوا است .

کلاس FileOutputStream

کلاس FileOutputStream برای نوشتن داده ها در یک فایل به صورت جریانی از بایت ها استفاده می شود. در اینجا یک مثال است:
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            FileOutputStream stream = new FileOutputStream("output.txt");
            byte[] bytesToWrite = textToWrite.getBytes();
            stream.write(bytesToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
در این مثال، یک شی FileOutputStream به نام stream با نام فایل "output.txt" برای نوشتن در آن ایجاد می کنیم . سپس رشته textToWrite را با استفاده از متد getBytes() به آرایه بایت تبدیل می کنیم و با استفاده از متد write() آرایه بایت را به شی جریان می نویسیم . در نهایت شی جریان را می بندیم .

کلاس Buffered Writer

کلاس BufferedWriter برای نوشتن متن روی یک فایل با قابلیت بافر استفاده می شود. در اینجا یک مثال است:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
            writer.write(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
در این مثال، یک شی BufferedWriter به نام writer با یک شی FileWriter ایجاد می کنیم که در فایل "output.txt" می نویسد. سپس از متد write() شی writer برای نوشتن textToWrite در فایل استفاده می کنیم . در نهایت شی writer را می بندیم .

متد WriteString().

متد writeString () یک روش مناسب است که در جاوا 11 برای نوشتن یک رشته در یک فایل با استفاده از کلاس Files معرفی شده است . به شما امکان می دهد یک رشته را در یک خط کد روی یک فایل بنویسید . در اینجا یک مثال است:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write to a file
        String data = "Hello, world!";

        // create a file object
        Path file = Paths.get("output.txt");

        try {
            // write the string to the file using writeString() method
            Files.writeString(file, data);

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
در این مثال، ابتدا یک شی String به نام داده ایجاد می کنیم که حاوی متنی است که می خواهیم در یک فایل بنویسیم. سپس یک شی Path با نام file ایجاد می‌کنیم که نمایانگر فایلی است که می‌خواهیم در آن بنویسیم، در این مورد با نام "output.txt". در مرحله بعد، از متد Files.writeString() برای نوشتن رشته داده در فایلی که توسط شی فایل نمایش داده شده است استفاده می کنیم . این متد دو آرگومان می گیرد: شی Path که فایلی را برای نوشتن نشان می دهد و شی String حاوی داده هایی برای نوشتن. در نهایت، در صورت موفقیت‌آمیز بودن عملیات نوشتن، یک پیام موفقیت آمیز به کنسول چاپ می‌کنیم یا اگر یک استثنا وجود داشته باشد، یک پیام خطا را دریافت می‌کنیم. متد writeString () روشی مناسب برای نوشتن یک رشته در یک فایل با استفاده از جاوا 11 یا جدیدتر است.

کلاس PrintWriter

کلاس PrintWriter به طور خودکار پس از نوشتن هر خط، بافر خروجی را پاک می کند و اطمینان حاصل می کند که داده ها بلافاصله در فایل نوشته می شوند. این باعث می شود که برای نوشتن مقادیر زیادی از داده های متنی در یک فایل انتخابی مناسب باشد. به عنوان مثال:
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
            writer.println(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
در این مثال، یک شی PrintWriter به نام writer با یک شی FileWrite ایجاد می کنیم که در فایل "output.txt" می نویسد. سپس از متد println() شی writer برای نوشتن textToWrite در فایل استفاده می کنیم . در نهایت شی writer را می بندیم .

کلاس DataOutputStream

کلاس DataOutputStream برای نوشتن انواع داده های اولیه جاوا در یک فایل به صورت جریانی از بایت ها استفاده می شود. در اینجا یک مثال است:
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";
        int numberToWrite = 42;

        try {
            DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
            stream.writeUTF(textToWrite);
            stream.writeInt(numberToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
در این مثال، ما یک شی DataOutputStream به نام stream ایجاد می کنیم که در فایل "output.txt" می نویسد. سپس از متد writeUTF() شی جریان برای نوشتن رشته textToWrite و از متد writeInt() برای نوشتن عدد صحیح numberToWrite در فایل استفاده می کنیم. در نهایت شی جریان را می بندیم .

کلاس FileChannel

کلاس FileChannel راهی برای نوشتن داده ها در یک فایل با استفاده از I/O نگاشت شده با حافظه فراهم می کند . در اینجا یک مثال است:
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            File file = new File("output.txt");
            RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
            FileChannel channel = randomAccessFile.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            buffer.put(textToWrite.getBytes());
            buffer.flip();
            channel.write(buffer);
            randomAccessFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
در این مثال، ابتدا یک شی File با نام فایل با نام فایل "output.txt" به عنوان پارامتر ایجاد می کنیم. سپس یک شی RandomAccessFile به نام randomAccessFile با شی فایل و حالت "rw" به عنوان پارامتر ایجاد می کنیم. سپس یک شی FileChannel به نام channel ایجاد می کنیم که با استفاده از شیء تصادفی AccessFile مقداردهی اولیه می شود . سپس یک شی ByteBuffer به نام buffer با ظرفیت 1024 بایت ایجاد می کنیم و رشته textToWrite را به عنوان پارامتر قرار می دهیم. سپس شی بافر را برمیگردانیم تا برای نوشتن آماده شود و با استفاده از متد write() روی شی کانال می نویسیم . در نهایت شی randomAccessFile را می بندیم .

نتیجه

در پایان، نوشتن بر روی یک فایل با استفاده از جاوا یک کار رایج در توسعه نرم افزار است که می تواند با استفاده از چندین کلاس و روش داخلی انجام شود. در این مقاله، چندین مثال از نحوه نوشتن در یک فایل، از جمله استفاده از کلاس های FileOutputStream ، BufferedWriter ، FileWriter ، PrintWriter ، DataOutputStream و FileChannel را مورد بحث قرار داده ایم . توجه به این نکته حائز اهمیت است که هنگام نوشتن روی یک فایل، مدیریت صحیح خطا و بستن فایل پس از نوشتن برای اطمینان از ذخیره صحیح فایل و انتشار صحیح منابع بسیار مهم است. با مثال های ارائه شده در این مقاله، مبتدیان اکنون می توانند درک اولیه ای از نحوه نوشتن روی یک فایل با استفاده از جاوا داشته باشند و می توانند شروع به تمرین و آزمایش موارد استفاده مختلف کنند.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION