نوشتن متن در یک فایل با استفاده از جاوا
بعد از خواندن از یک فایل متنی به وسیله جاوا میتوان همان برنامه را با اندکی تغییر به برنامه ای برای نوشتن متن در یک فایل تبدیل کرد، که شبه برنامه زیر این کار را انجام میدهد :
class FileWriter {
public static void main(String args[]) {
try {
FileOutputStream fstream = new FileOutputStream("textfile.txt");
DataOutputStream out = new DataOutputStream(fstream);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write("blog.reihanian.com");
bw.flush();
out.close();
fstream.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
در خط اول کلاس FileOutputStream اتصالی با فایل متنی مورد نظر بر قرار میکند و چون قرار است داده ای در این فایل نوشته بشود در صورت پیدا نکردن فایل مورد نظر آنرا میسازد و خطا رخ نمیدهد و با استفاده از این کلاس فقط میتوان داده ها را بصورت بایت (byte) ذخیره کرد.
کلاس DataOutputStream داده ها را برای تبدیل از متغییر های اولیه (primitive data type) به متغییر های برای استفاده در انواع output stream مانند FileOutputStream که از ساختار پلتفرم جدا است تبدیل میکند.
با استفاده از کلاس OutputStreamWriter میتوان داده ها از نوع کاراکتری به داده ها از نوع بایت (byte) تبدیل کرد.
در قسمت بعد با استفاده از کلاس BufferedWriter میتوان داده ها در buffer نوشت، که برای نوشتن داده ها از متد write استفاده شده است.
پس از نوشتن متن مورد نظر در buffer میتوان با استفاده از متد flush داده ها را از buffer به فایل منتقل کرد.
پس از آن بترتیب کلاس های DataOutputStream و FileOutputStream را میبندیم تا اتصال ایجاد شده با منبع خارجی از بین برود و داده ها در فایل ذخیره بشوند.
کل مجموعه کد در بلوک try - catch قرار دارد که اگر خطایی رخ داد ، خطا شناسایی شود.
برنامه خواندن از فایل بسیار مفید و کاربردی بود اما من یک سوال دارم.
من همین برنامه را با یک فایل که محتویات فارسی داشت چک کردم و خواستم یک فاصله یا space به ابتدای کلمه اضافه کنم اما هر چه کردم نشد و این فاصله به انتهای کلمه اضافه می شود می خواستم بپرسم آیا شما می توانید من را راهنمایی کنید.