1. 程式人生 > 其它 >【android studio】建立1M的檔案,內容隨機,對其進行讀寫驗證

【android studio】建立1M的檔案,內容隨機,對其進行讀寫驗證

技術標籤:android studioandroid studiojava

我傻了,之前建立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); } } }