Skip to content

Commit

Permalink
Merge pull request #282 from keyvangholami/main
Browse files Browse the repository at this point in the history
Update 4.7-file.md
  • Loading branch information
Ja7ad authored Aug 18, 2023
2 parents 2bbab78 + ab3c381 commit 912ae93
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions content/chapter 4/4.7-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ weight: 7007

## 4.7.1 مقدمه

توسعه دهندگان Go می‌توانند از پکیج‌های built-in مانند "os" و "io" برای کار با فایل‌ها استفاده کنند. همچنین، پکیج‌های دیگری نیز برای کار با فایل وجود دارند که می‌توان به عنوان پکیج استاندارد نامید. نمونه ای از این پکیج‌ها، پکیج "bufio" است که برای کار با بفرهای ورودی/خروجی استفاده شده و به توسعه دهندگان اجازه می‌دهد تا برنامه‌هایی با عملکرد بهتر و با کارایی بالاتر ایجاد کنند.
توسعه دهندگان Go می‌توانند از پکیج‌های built-in مانند "os" و "io" برای کار با فایل‌ها استفاده کنند. همچنین، پکیج‌های دیگری نیز برای کار با فایل وجود دارند که می‌توان به عنوان پکیج استاندارد نامید. نمونه ای از این پکیج‌ها، پکیج "bufio" است که برای کار با بافرهای ورودی/خروجی استفاده شده و به توسعه دهندگان اجازه می‌دهد تا برنامه‌هایی با عملکرد بهتر و با کارایی بالاتر ایجاد کنند.

## 4.7.2 باز کردن فایل و خواندن محتوای فایل با پکیج os

برای باز کردن یک فایل متنی و خواندن محتوای آن، می‌توانیم از پکیج "os" و تابع "Open" استفاده کنیم. در کد زیر، ما یک فایل به نام "example.txt" باز می‌کنیم و محتوای آن را بر اساس خط به خط خوانده و به صفحه کنسول چاپ می‌کنیم:
برای باز کردن یک فایل متنی و خواندن محتوای آن، می‌توانیم از پکیج "os" و متد "Open" استفاده کنیم. در کد زیر، ما یک فایل به نام "example.txt" باز می‌کنیم و محتوای آن را به صورت خط به خط خوانده و به صفحه کنسول چاپ می‌کنیم:

```go
package main
Expand Down Expand Up @@ -42,13 +42,13 @@ func main() {
}
```

در کد بالا، با استفاده از تابع "os.Open"، فایل "example.txt" برای خواندن به صورت فایل شیء باز می‌شود. سپس، با استفاده از تابع "bufio.NewScanner" محتوای فایل به شیء "scanner" انتقال داده می‌شود و در نهایت با استفاده از حلقه، محتوای فایل خوانده شده بر اساس خط به خط و به صورت متنی چاپ می‌شود.
در کد بالا، با استفاده از متد "os.Open"، فایل "example.txt" برای خواندن به صورت فایل شیء باز می‌شود. سپس، با استفاده از متد "bufio.NewScanner" محتوای فایل به شیء "scanner" انتقال داده می‌شود و در نهایت با استفاده از حلقه، محتوای فایل خوانده شده خط به خط و به صورت متنی چاپ می‌شود.

در نهایت، با استفاده از "scanner.Err"، خطاهایی که در پروسه خواندن ممکن است بوجود آیند، بررسی شده و مورد احتیاط قرار می‌گیرند.

## 4.7.3 نحوه ایجاد فایل و نوشتن محتوا داخل فایل با os

برای ایجاد یک فایل جدید و نوشتن محتوای دلخواه در آن، می‌توانیم از پکیج "os" و توابع آن استفاده کنیم. در کد زیر، یک فایل با نام "example.txt" ساخته شده و پس از باز شدن، متن "Hello, World!" در داخل آن نوشته می‌شود:
برای ایجاد یک فایل جدید و نوشتن محتوای دلخواه در آن، می‌توانیم از پکیج "os" و متدهای آن استفاده کنیم. در کد زیر، یک فایل با نام "example.txt" ساخته شده و پس از باز شدن، متن "Hello, World!" در داخل آن نوشته می‌شود:

```go
package main
Expand All @@ -72,13 +72,13 @@ func main() {
}
```

در کد بالا، با استفاده از تابع "os.Create"، یک فایل با نام "example.txt" ایجاد شده و به عنوان یک فایل شیء باز شده است. سپس با استفاده از تابع "fmt.Fprintln"، متن "Hello, World!" در داخل فایل نوشته می‌شود.
در کد بالا، با استفاده از متد "os.Create"، یک فایل با نام "example.txt" ایجاد شده و به عنوان یک فایل شیء باز شده است. سپس با استفاده از متد "fmt.Fprintln"، متن "Hello, World!" در داخل فایل نوشته می‌شود.

در نهایت، با استفاده از "file.Close"، فایل بسته شده و تمام تغییرات آن ذخیره می‌شود.

## 4.7.4 خواندن و نوشتن فایل با استفاده از پکیج io

برای خواندن و نوشتن فایل‌ها می‌توان از پکیج "io" استفاده کرد. این پکیج امکانات بسیاری را برای کار با بیت‌ها و داده‌های ورودی/خروجی فراهم می‌کند. در کد زیر، یک فایل با نام "example.txt" باز شده و محتوای آن به صورت خوانده و به فایل دیگری با نام "output.txt" کپی می‌شود:
برای خواندن و نوشتن فایل‌ها می‌توان از پکیج "io" استفاده کرد. این پکیج امکانات بسیاری را برای کار با بیت‌ها و داده‌های ورودی/خروجی فراهم می‌کند. در کد زیر، یک فایل با نام "example.txt" باز شده و محتوای آن خوانده شده و به فایل دیگری با نام "output.txt" کپی می‌شود:

```go
package main
Expand Down Expand Up @@ -112,6 +112,6 @@ func main() {
}
```

در کد بالا، با استفاده از توابع "os.Open" و "os.Create"، فایل‌های ورودی و خروجی باز شده و به عنوان فایل شیء به برنامه اضافه شده‌اند. سپس با استفاده از تابع "io.Copy"، اطلاعات از فایل ورودی، به فایل خروجی کپی شده‌اند.
در کد بالا، با استفاده از متدهای "os.Open" و "os.Create"، فایل‌های ورودی و خروجی باز شده و به عنوان فایل شیء به برنامه اضافه شده‌اند. سپس با استفاده از متد "io.Copy"، اطلاعات از فایل ورودی، به فایل خروجی کپی شده‌اند.

در نهایت، با استفاده از "defer" و "Close"، فایل‌ها بسته شده‌اند و تغییرات آن‌ها ذخیره شده‌اند.
در نهایت، با استفاده از "defer" و "Close"، فایل‌ها بسته شده‌اند و تغییرات آن‌ها ذخیره شده‌اند.

0 comments on commit 912ae93

Please sign in to comment.