یکی از رایج ترین وظایف در توسعه نرم افزار، توانایی خواندن و نوشتن فایل ها است. در جاوا، نوشتن در یک فایل یک فرآیند ساده است که می تواند با استفاده از کلاس ها و متدهای داخلی انجام شود. در این مقاله، نحوه نوشتن بر روی یک فایل با استفاده از جاوا را بررسی خواهیم کرد و در مورد کلاس ها و روش های مختلف درگیر بحث خواهیم کرد. جاوا کلاس های داخلی مانند 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 را می بندیم .
GO TO FULL VERSION