Main.kt文件

    1. import java.io.File
    2. import java.io.RandomAccessFile
    3. fun main(args: Array<String>) {
    4. val file = File("./abc.txt")
    5. mkFile(file)
    6. /**-------------------create---------------*/
    7. val randomAccessFile = RandomAccessFile(file, "rw")
    8. log("写入前的文件长度=${randomAccessFile.length()}")
    9. val content1 = " 你好".toByteArray()
    10. val content2 = "下午好".toByteArray()
    11. val content3 = "晚上好".toByteArray()
    12. /**-------------------write---------------*/
    13. randomAccessFile.seek(randomAccessFile.length())
    14. randomAccessFile.write(content1)
    15. randomAccessFile.write(content2)
    16. randomAccessFile.write(content3)
    17. log("写入后的文件长度=${randomAccessFile.length()}")
    18. /**-------------------read---------------*/
    19. randomAccessFile.seek(0)
    20. val buffer: ByteArray = ByteArray(256)
    21. val builder: StringBuilder = StringBuilder()
    22. while (randomAccessFile.read(buffer) != -1) {
    23. builder.append(String(buffer))
    24. }
    25. log("当前的文件的内容为\n$builder")
    26. }
    27. fun log(any: Any?) {
    28. println(any)
    29. }
    30. fun mkFile(file: File) {
    31. if (!file.exists()) {
    32. file.createNewFile()
    33. }
    34. log(file.absolutePath)
    35. }

    连续跑3次main方法,控制台打印内容:

    1. 写入前的文件长度=50
    2. 写入后的文件长度=75
    3. 当前的文件的内容为
    4. 你好下午好晚上好 你好下午好晚上好 你好下午好晚上好