با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره آموزش جامع برنامه نویسی کامپیوتر در خدمت شما هستیم.
در این جلسه قصد داریم کار با فایل ها در برنامه نویسی و همچنین کار با فایل در جاوا و کار با فایل در پایتون را آموزش دهیم.
از فایل های کامپیوتری برای ذخیره داده ها در فرمت های دیجیتالی مانند متن ساده، تصاویر، صوت و … استفاده میشوند.
فایل های کامپیوتری را میتوان داخل دایرکتوری های مختلف سازماندهی کرد.
در ادامه ما با فایل های متنی ساده کار خواهیم کرد.
در هنگام کار با فایل ها در برنامه نویسی ، حالت های زیر وجود دارند:
از تابع ()fopen برای باز کردن یک فایل استفاده میشود. همچنین اگر فایل موردنظر وجود نداشته باشد، این تابع آن فایل را ایجاد میکند.
در زبان C نوع داده پیچیده ای به نام FILE وجود دارد که حاوی اطلاعات مفیدی در هنگام کار با فایل ها است.
در مثال زیر نحوه چگونگی استفاده از این تابع نشان داده شده است:
1 | FILE *fopen( const char * filename, const char * mode ); |
در اینجا filename همان نام فایل است و mode نیز حالتی ایت که میخواهیم با تابع کار کنیم.
حالت ها و توضیحات |
r باز کردن یک فایل موجود برای خواندن |
w باز کردن فایل موجود برای نوشتن. اگر فایل وجو نداشته باشد، ان را ایجاد میکند. در این حالت محتوا قبلی فایل پاک شده و داده های جدید جایگزین خواهند شد |
a باز کردن فایل موجود برای نوشتن. اگر فایل وجو نداشته باشد، ان را ایجاد میکند. در این حالت محتوا قبلی فایل محفوظ است و داده های جدید از انتهای فایل نوشته خواهند شد |
+r باز کردن فایل جدید برای خواندن و نوشتن |
+w باز کردن فایل برای نوشتن و خواندن. اگر فایل موجود نباشد، آن را ایجاد میکند. |
+a باز کردن فایل برای نوشتن و خواندن. اگر فایل موجود نباشد، آن را ایجاد میکند. خواندن از ابتدای فایل اغاز میشود اما نوشتن از انتهای فایل |
از تابع ()fclose برای بستن یک فایل استفاده میکنیم.
1 | int fclose( FILE *fp ); |
اگر فایل با موفقیت بسته شد مقدار ۰ و در غیر اینصورت مقدار ۱- را برمیگرداند.
از تابع ()fputc برای نوشتن داده ها روی فایل استفاده میکنیم.
1 | int fputs( const char *s, FILE *fp ); |
این تابع رشته s را در جریان خروجی یا همان فایل fp مینویسد.
اگر عمل نوشتن با موفقیت انجام شود، یک مقدار نامنفی و اگر با شکست مواجه شود، مقدار ۱- را برمیگرداند.
مثال:
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main() { FILE *fp; fp = fopen("/tmp/test.txt", "w+"); fputs("This is testing for fputs...\n", fp); fclose(fp); } |
وقتی که کد بالا کامپایل و اجرا شود، فایلی به نام test.txt ایجاد میشود.(اگر وجود نداشته باشد)
سپس رشته قار داده شده در تابع را در فایل مینویسد و در نهایت فایل را میبندد.
از تابع ()fgetc برای خواندن داده ها از فایل استفاده میشود.
1 | int fgetc( FILE * fp ); |
تابع بالا به صورت کاراکتر به کاراکتر داده های فایل fp را خوانده و در هر بار اجرا، کاراکتری که میخواند را برمیگرداند. در غیر این صورت مقدار ۱- را برمیگرداند.
1 | char *fgets( char *buf, int n, FILE *fp ); |
با استفاده از تابع بالا میتوانید یک رشته را از فایل fp بخوانید. پارامتر n مشخص کننده تعداد کاراکتر هایی است که باید خوانده شوند.
رشته خوانده شده در رشته buf قرار میگیرد.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> main() { FILE *fp; char buff[255]; fp = fopen("/tmp/test.txt", "r"); printf("1 : %s\n", buff ); fgets(buff, 255, (FILE*)fp); printf("2: %s\n", buff ); fgets(buff, 255, (FILE*)fp); printf("3: %s\n", buff ); fclose(fp); } |
جاوا توابع یا متد های غنی تری برای کار با فایل نسبت به زبان C دارد.
در برنامه زیر که مشابه برنامه نوشته شده به زبان C است، فایلی به نام java.txt ایجاد میکنیم و سپس داده هایی را در آن نوشته و سپس از همان داده ها را میخوانیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.io.*; public class DemoJava { public static void main(String []args) throws IOException { File file = new File("/tmp/java.txt"); // Create a File file.createNewFile(); // Creates a FileWriter Object using file object FileWriter writer = new FileWriter(file); // Writes the content to the file writer.write("This is testing for Java write...\n"); writer.write("This is second line...\n"); // Flush the memory and close the file writer.flush(); writer.close(); // Creates a FileReader Object FileReader reader = new FileReader(file); char [] a = new char[100]; // Read file content in the array reader.read(a); System.out.println( a ); // Close the file reader.close(); } } |
خروجی:
1 2 | This is testing for Java write... This is second line... |
کار با فایل ها در پایتون نسبت به زبان های جاوا و C آسان تر است.
برنامه زیر مشابه برنامه های نوشته شده در بالا است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # Create a new file fo = open("/tmp/python.txt", "w") # Writes the content to the file fo.write( "This is testing for Python write...\n"); fo.write( "This is second line...\n"); # Close the file fo.close() # Open existing file fo = open("/tmp/python.txt", "r") # Read file content in a variable str = fo.read(100); print str # Close opened file fo.close() |
خروجی:
1 2 | This is testing for Python write... This is second line... |
جلسه آموزش کار با فایل ها در برنامه نویسی و همچنین دوره جامع اموزش برنامه نویسی کامپیوتر نیست به پایان رسید.
امیدوارم این دوره مفید واقع شده باشد. موفق باشید.