زبان برنامهنویسی کاتلین، یک زبان قدرتمند، مدرن و چند سکویی است که به دلیل سادگی، خوانایی و کارایی بالا، محبوبیت زیادی در بین برنامهنویسان پیدا کرده است.
این زبان توسط شرکت JetBrains توسعه یافته و به طور کامل با جاوا سازگار است، به این معنی که میتوان از کدهای کاتلین در پروژههای جاوا و بالعکس استفاده کرد.
زبان کاتلین در حال حاضر به شکل گسترده در برنامه نویسی اندروید استفاده میشود.
کار با فایل در کاتلین
کار با فایل در برنامه نویسی کاتلین از جهات مختلفی حائز اهمیت است:
ذخیره سازی داده ها:
- ذخیره سازی دائمی داده ها: اطلاعات برنامه شما فقط در حافظه رم ذخیره نمی شود. با ذخیره سازی در فایل ها، اطلاعات حتی پس از بسته شدن برنامه نیز حفظ می شوند.
- اشتراک گذاری داده ها: می توانید داده ها را با سایر برنامه ها یا کاربران با ذخیره آنها در فایل ها به اشتراک بگذارید.
- خواندن داده ها از منابع خارجی: می توانید داده ها را از فایل های مختلف مانند CSV، JSON، XML و غیره بخوانید و در برنامه خود پردازش کنید.
ایجاد تنوع در برنامه:
- افزودن قابلیت های جدید: با استفاده از فایل ها می توانید قابلیت های جدیدی به برنامه خود اضافه کنید، مانند بارگیری تصاویر یا ویدیو.
- شخصی سازی تجربه کاربری: با ذخیره تنظیمات کاربر در فایل ها، می توانید تجربه کاربری را برای هر کاربر شخصی سازی کنید.
بهبود عملکرد برنامه:
- ذخیره سازی داده ها در حافظه پنهان: می توانید داده های frequently used را در حافظه پنهان ذخیره کنید تا سرعت دسترسی به آنها را افزایش دهید.
- ذخیره سازی داده ها در فرمت های فشرده: می توانید داده ها را در فرمت های فشرده ذخیره کنید تا فضای ذخیره سازی را بهینه کنید.
ساخت فایل در زبان برنامه نویسی کاتلین
به طور کلی در بسیاری از روش های نوشتن، یک فایل به طور خودکار ایجاد می شود، اما ما در اینجا روشی برای ایجاد یک فایل به صورت دستی را بررسی خواهیم کرد.
برای این کار از کلاس File موجود در بسته java.io استفاده می کنیم. سازنده این کلاس نام فایل را به عنوان آرگومان دریافت می کند.
ما از روش createNewFile() برای ایجاد فایل استفاده خواهیم کرد.
اگر فایلی با نام مشخص شده وجود نداشته باشد، روش createNewFile() یک فایل جدید ایجاد می کند و مقدار true را برمی گرداند.
اگر فایلی با نام مشخص شده از قبل وجود داشته باشد، این روش مقدار false را برمی گرداند.
import java.io.File
fun main() {
val fileName = "Demo.txt"
// Create file object
val file = File(fileName)
// Create file
var isCreated = file.createNewFile()
if (isCreated)
println("File is created")
else
println("File is not created")
// Again create file
isCreated = file.createNewFile()
if (isCreated)
println("File is created")
else
println("File is not created")
}
خروجی کد بالا بصورت زیر خواهد بود
File is created
File is not created
همچنین با استفاده از تابع file.exists() میتوانیم چک کنیم آیا چنین فایلی وجود دارد یا خیر.
نوشتن محتویات در فایل
با استفاده از متد writeText()
میتوانیم دادهها را در یک فایل بنویسیم.
این متد یک رشته (String) را به عنوان آرگومان میگیرد و آن را در فایل مینویسد.
اگر فایلی با نام مشخص شده وجود نداشته باشد، یک فایل جدید ایجاد میکند.
اگر فایل از قبل وجود داشته باشد، آن را جایگزین میکند.
به طور پیش فرض، دادههای داده شده با فونت کاراکتر UTF-8 رمزگذاری میشوند. همچنین میتوان کاراکتر دیگری را مشخص کرد.
import java.io.File
fun main() {
val fileName = "Demo.txt"
val file = File(fileName)
file.writeText("Hello World")
file.writeText("Bye world")
}
اگر فایل Demo.txt
را بررسی کنیم، فقط عبارت “Bye world” را در آن خواهیم دید. دلیل این است که متد writeText()
تمام محتوای موجود در فایل را جایگزین می کند.
اگر می خواهید داده های موجود از بین نروند، می توانید به جای writeText()
از تابع appendText()
استفاده کنید.
نکات:
- برای رمزگذاری با کاراکتر خاص، متد
writeText(String, Charset)
را استفاده کنید. - اگر نمیخواهید فایل موجود را جایگزین کنید، از متد
appendText(String)
استفاده کنید که متن را به انتهای فایل اضافه میکند. - برای نوشتن دادههای باینری، از متد
writeBytes(ByteArray)
استفاده کنید.
خواندن اطلاعات فایل در زبان کاتلین
برای خواندن محتوا خط به خط می توانیم از متد forEachLine()
استفاده کنیم. این متد داده ها را به صورت خط به خط از فایل می خواند.
import java.io.File
fun main() {
val fileName = "Demo.txt"
val file = File(fileName)
file.forEachLine {
println(it)
}
}
با استفاده از متد readText() اطلاعات فایل را میتوانیم در کاتلین بخوانیم.
import java.io.File
fun main() {
val fileName = "Demo.txt"
val file = File(fileName)
val data = file.readText()
println(data)
}
نکات:
appendText()
متن جدید را به انتهای فایل اضافه می کند.- اگر فایل وجود نداشته باشد،
appendText()
یک فایل جدید ایجاد می کند. - هر خط خوانده شده توسط
forEachLine()
به عنوان یک رشته در دسترس است. - می توانید با یک تابع lambda عملیات مورد نظر را روی هر خط انجام دهید.
در صورتی پروژه ای در زمینه برنامه نویسی اپلیکیشن دارید میتوانید از طریق صفحه سفارش طراحی اپلیکیشن با من در ارتباط باشید.