【android studio】创建1M的文件,内容随机,对其进行读写验证

我傻了,之前创建1M文件的时候,我查看文件属性总是发现文件不是1M,一直以为是io流的原因,又是加flush和close也没有用,然后今天我突发奇想的去adbshell看了一下文件属性,结果显示是1M。然后重新测试了一下,pc端显示不是1M,去adbshell里仍然显示1M,然后我把文件管理关了重新打开显示是1M了。代码修改了一下,更加简洁明了。

这次使用随机读写的方式测试文件内容,读写对比了长度和内容。特此记录一下学习情况。后续添加读写性能的测试。

package com.example.testst
//mitac-bu
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import java.io.File
import java.io.FileReader
import java.io.FileWriter
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*

class MainActivity : AppCompatActivity() {
    private var path: String? = null
    private var mFileWriter: FileWriter? = null
    private val LENGTH = 1024*1024;
    var mWriterBuffer: CharArray? = null
    var mReaderBuffer: CharArray? = null
    private var str: String? = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val btn = findViewById<Button>(R.id.button)
        btn.setOnClickListener {
            val random=Random()
            var bReturn = true
            val date = Date()
            val timeTemp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(date.time)
            path = getExternalFilesDir("")!!.absolutePath
            val file = File(path + File.separator + timeTemp + ".txt")
            mWriterBuffer = CharArray(LENGTH)
            mReaderBuffer = CharArray(LENGTH + 10)
            try {
                for (i in 0 until LENGTH) {
                    val number: Int = random.nextInt(62)
                    mWriterBuffer!![i] = str!![number]
                }
                mFileWriter = FileWriter(file)
                mFileWriter!!.write(mWriterBuffer)
                mFileWriter!!.close()
                val mFileReader = FileReader(file)
                val iRead = mFileReader.read(mReaderBuffer)
                mFileReader.close()
                if (iRead != LENGTH) {
                    println("The length isn't correct.")
                    bReturn = false
                } else {
                    println("The length is correct.")
                }
                var bSame = true
                for (i in 0 until LENGTH) {
                    if (mReaderBuffer!![i] != mWriterBuffer!![i]) {
                        bSame = false
                    }
                }
                if (bSame) {
                    println("The file is correct.")
                } else {
                    println("The file isn't correct.")
                    bReturn = false
                }
                if (bReturn) {
                    println("Pass")
                } else {
                    println("Fail")
                }

            } catch (e: IOException) {
                e.printStackTrace()
            }
            Thread.sleep(1000);
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值