Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีสร้างไฟล์ข้อความและบันทึกข้อมูลใน Android ด้วย Kotlin

ภาพรวม

ตัวอย่างนี้สาธิตวิธีการสร้างไฟล์ข้อความ (Text File) และบันทึกข้อมูลลงไปในหน่วยความจำภายใน (Internal Storage) ของ Android โดยใช้ Kotlin

ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่

สร้างโปรเจกต์ Android ใหม่ใน Android Studio

ขั้นตอนที่ 2: จัดรูปแบบหน้าจอหลัก (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="70dp"
        android:background="#008080"
        android:padding="5dp"
        android:text="TutorialsPoint"
        android:textColor="#fff"
        android:textStyle="bold" />
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_marginTop="40dp"
        android:ems="10">
        <requestFocus />
    </EditText>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText"
        android:layout_centerInParent="true"
        android:layout_margin="5dp"
        android:background="@android:color/holo_orange_light"
        android:onClick="saveTextFile"
        android:text="Save File"
        android:textColor="@android:color/background_dark"
        android:textStyle="bold" />
</RelativeLayout>

ขั้นตอนที่ 3: เขียนโค้ด MainActivity.kt

import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.io.FileOutputStream
import java.io.OutputStreamWriter

class MainActivity : AppCompatActivity() {
    private lateinit var editText: EditText

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        editText = findViewById(R.id.editText)
    }

    fun saveTextFile(view: View) {
        try {
            val fileOutputStream: FileOutputStream = openFileOutput("mytextfile.txt", Context.MODE_PRIVATE)
            val outputWriter = OutputStreamWriter(fileOutputStream)
            outputWriter.write(editText.text.toString())
            outputWriter.close()
            Toast.makeText(baseContext, "File saved successfully!", Toast.LENGTH_SHORT).show()
        } catch (e: Exception) {
            e.printStackTrace()
            Toast.makeText(baseContext, "Error saving file", Toast.LENGTH_SHORT).show()
        }
    }
}

ขั้นตอนที่ 4: ตั้งค่า AndroidManifest.xml

เพิ่มสิทธิ์เขียน External Storage (สำหรับ Android รุ่นเก่า):

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
หมายเหตุ:
  • openFileOutput() บันทึกไฟล์ใน Internal Storage (Private to app) ไม่ต้องขอสิทธิ์
  • สิทธิ์ WRITE_EXTERNAL_STORAGE จำเป็นต้องขอ Runtime Permission ใน Android 6.0+ (API 23+)
  • Android 10+ (API 29+) แนะนำใช้ MediaStore หรือ Storage Access Framework แทน

ทดสอบการทำงาน

รันแอป พิมพ์ข้อความใน EditText กดปุ่ม "Save File" จะบันทึกไฟล์ mytextfile.txt และแสดง Toast สำเร็จ