View Full Version : نوشتن در فایل
mehrdad372
چهارشنبه 22 بهمن 1393, 15:25 عصر
سلام وقت بخیر
ببخشید من اصلا با جاوا کار نکردم اما یک مشکلی برام پیش اومده من میخوام در حلقه زیر میخوام هر بار مقدار i رو در یک فایل بنویسم
باید از
FileOutputStream (https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0CEUQFjAG&url=http%3A%2F%2Fbeginnersbook.com%2F2014%2F01%2Fh ow-to-write-to-a-file-in-java-using-fileoutputstream%2F&ei=AULbVKntHoX_UN_PgOgH&usg=AFQjCNE4TfQoEdQ_1wds0Cj8VPFRwsEgaw&sig2=MOaeA4ql6_ZGNacwlbEidg&bvm=bv.85761416,d.d24) استتفاده کنمممنون میشم راهنمایی کنید
(++For(i=1;i<10;i
tanzadeh7
چهارشنبه 22 بهمن 1393, 19:30 عصر
منظورت درست متوجه نشدم میخوای فایل خالی بشه و مقدار i رو نوش بنویسی یا به اطلاعات قبلی فایل قبلی اضافه کنی
mehrdad372
پنج شنبه 23 بهمن 1393, 08:51 صبح
منظورت درست متوجه نشدم میخوای فایل خالی بشه و مقدار i رو نوش بنویسی یا به اطلاعات قبلی فایل قبلی اضافه کنی
سلام
بله میخوام به مقادیر قبلی اضافه بشه
ممنون میشم راهنمایی کنید
Ebrahimkh
پنج شنبه 23 بهمن 1393, 09:26 صبح
دوست عزیز FileOutputStream یه نوع هندل هستش برا دسترسی به فایل که بتونیم عملیات خاصی رو اناجم دهیم
شما باید فایلتون رو از نوع a باز کنید تا بتوانید مطالب رو به ادامه ی فایلتون اضافه کنید نه از نوع w
mehrdad372
پنج شنبه 23 بهمن 1393, 09:34 صبح
میشه یک راهنمایی کوچولو بکنید
چون من اصلا با جاوا کار نمیکنم و الان هم بر حسب ضرورت دارم رو این تیکه کد کار میکنم
try
{
// Open an output stream
fout = new FileOutputStream ("myfile.txt");
// Print a line of text
new PrintStream(fout).println (numberOfCompletedPieces);
// Close our output stream
fout.close();
}
// Catches any error conditions
catch (IOException e)
{
System.err.println ("Unable to write to file");
System.exit(-1);
}
این تیکه کد باز کردن فایله و کدام قسمت رو دستکاری کنم که مقادیر قبلی پاک نشه
mehrdad372
پنج شنبه 23 بهمن 1393, 09:42 صبح
چطور فایل رو از نوع a باز کنم تا بتونم به ادامه فایل قبلی اضافش کنم
Ebrahimkh
پنج شنبه 23 بهمن 1393, 09:45 صبح
اصلا نیازی به نوع a نیست :لبخند:
بفرما
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
public class CreateFile {
public static void main(String[] args) throws IOException
{
File file=new File("d://tr.txt");
FileWriter fileWriter=new FileWriter(file);
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
for(int a=1;a<20;a++)
{
bufferedWriter.write(String.valueOf(a));
}
bufferedWriter.close();
fileWriter.close();
}
}
mehrdad372
پنج شنبه 23 بهمن 1393, 09:56 صبح
ممنونم از پاسختون اما یک سوال دیگه
ما اینجا bufferedWriter.writeln نداریم؟
وسوال بعدیم اینه اگه writeln نداریم میتونیم از روش خاصی مثل bufferedWriter.write(String.valueOf(a)+"\n"); a
استفاده کرد؟
من اگه بخوام هر بار برناممو اجرا میکنم فایلمو باز کنه و در ادامه فایل قبلی بنویسه باید چیکار کنم؟
این کد رو من برا گرفتن از خروجی یک شبیه ساز میخوام
ممنونم از راهنمایی دوستان
Ebrahimkh
پنج شنبه 23 بهمن 1393, 12:39 عصر
تو جاوا bufferedWriter.writeln نداریم
-------------------------------
از این روش
bufferedWriter.write(String.valueOf(a)+"\n");
هم می توانیم استفاده کنیم ولی در اکثر مواقع این روش کارساز نیست
*************************************************
این مثال می تونه کمکتون کند
http://www.tutorialspoint.com/java/io/bufferedwriter_newline.htm
موفق باشید./
mehrdad372
پنج شنبه 23 بهمن 1393, 13:01 عصر
ممنونم از پاسختون
من خودم با کد زیر تونستم مشکل رو حل کنم
public static void main (String args[]) throws IOException {
FileOutputStream fos = new FileOutputStream("myfile.txt");
System.out.println("Writing to file ");
PrintStream pstr = new PrintStream(fos);
for(int i=1;i<=20;i++)
pstr.println(i);
fos.close();
}
حالا میخوام هر بار که اجرا میکنم این کد رو فایل قبلی بمونه و به ادامه فایل اضافه بشه
باید چیکار کنم؟
ممنون میشم راهنمایی کنید
میخوتم به اطلاعات قبلی فایل قبلی اضافه بشه
tanzadeh7
پنج شنبه 23 بهمن 1393, 16:58 عصر
ممنونم از پاسختون
من خودم با کد زیر تونستم مشکل رو حل کنم
public static void main (String args[]) throws IOException {
FileOutputStream fos = new FileOutputStream("myfile.txt");
System.out.println("Writing to file ");
PrintStream pstr = new PrintStream(fos);
for(int i=1;i<=20;i++)
pstr.println(i);
fos.close();
}
حالا میخوام هر بار که اجرا میکنم این کد رو فایل قبلی بمونه و به ادامه فایل اضافه بشه
باید چیکار کنم؟
ممنون میشم راهنمایی کنید
میخوتم به اطلاعات قبلی فایل قبلی اضافه بشه
اول فایل بخون
File f = new File("path/to/file");
try {
BufferedReader br = new BufferedReader(new FileReader(f));
String s = " ";
while ((SA = br.readLine()) != null) {
s += br.readLine() + "\n";
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
}
بعد اطلاعات جدیدت رو به s اضافه کن و s رو تو فایل بنویس
ahmad.mo74
جمعه 24 بهمن 1393, 17:06 عصر
سلام
برای اضافه کردن دیتا توی فایل به طوری که اطلاعات قبلی پاک نشه :
FileOutputStream fileOutputStream = new FileOutputStream("path", true);
یا :
FileWriter writer = new FileWriter("path", true);
در این حالت دیتا جدید به فایل append میشه.
public static void main(String[] args) throws IOException {
//Method 1
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:/a.txt", true)))) {
for (int i = 0; i < 10; i++) {
writer.write(String.valueOf(i));
writer.newLine();
}
}
//Method 2
try (PrintWriter writer = new PrintWriter(new FileWriter("D:/a.txt", true))) {
for (int i = 0; i < 10; i++) {
writer.println(String.valueOf(i));
}
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.