aardio文件读写

wx 1天前 55

 

今日开启 aardio 文件读写与管理模块的学习,犹如探索计算机文件系统的 “数字档案库”。面对陌生的代码语法虽倍感困惑,但通过对实例的逐步拆解与实践,逐渐掌握了基础操作逻辑,对编程世界的认知也更进了一步。

一、创建并写入文件:给“电子文件夹”塞资料

刚接触时,完全不理解代码怎么就能创建文件、写入内容。后来琢磨明白了,这就跟在文件柜里拿出新文件夹,再往里面放资料一个道理。

案例一:写一行文字到test.txt

import console;

var file = io.file("/test.txt","w+");
file.write('hello aardio !');

var line = file.readAll();
console.log(line)
file.close();

console.pause();
截图一
截图一

io.file就像是打开文件的“万能钥匙”,"/test.txt"是文件的“地址”,"w+"表示写入模式,要是文件不存在,它就会自动新建一个。write函数负责把内容“写”进文件,readAll读取内容,print把读到的内容显示出来,最后close就像给文件夹关上了门。

不过第一次运行时,我发现文件根本找不到,原来是没注意路径。后来才知道,直接写test.txt,文件会建在默认路径里,加个/~/~代表用户目录)会更保险。

案例二:写入多行内容

import console;

var file = io.file("/test.txt","w+");
file.write('第一行内容','\n');
file.write('第二行内容','\n');
file.write('第三行内容');
var line = file.readAll();
console.log(line)

file.close();
console.pause();
截图二
截图二

和示例1比起来,就是多写了几行。这里最关键的是\n,它就像键盘上的回车键,要是不加,所有内容都会挤在一行,根本分不清段落。

二、读取文件:翻“电子文件夹”里的资料

学会写文件后,我就琢磨着怎么看文件里的内容,这就好比从文件柜里拿出文件夹查看资料。

案例一:一次性读完文件

import console;

var file = io.file("/test.txt","r");
var line = file.readAll();
console.log(line);
file.close();
console.pause();
截图三
截图三

"r"是只读模式,只能用来读已经存在的文件,要是文件不存在,程序就会报错。readAll()特别方便,能把文件内容一股脑全读出来,适合内容少的文件。但要是文件很大,这么读可能会占用太多内存,这时候就得用逐行读取了。

案例二:逐行读取文件

import console;

var file = io.file("/test.txt","r");
while(true){
    var line = file.read();
    if(!line) break;
    console.log(line)
}
file.close();
console.pause();
截图四
截图四

一开始看到while(true)这个无限循环,我都懵了,这不会一直读下去吗?后来才明白,file.read()每次读一行,读完一行接着读下一行,当读到文件末尾,line就会变成nil(空值),这时候if(!line) break;就会让循环停下来。就像一页一页翻书,直到把书翻完。

三、文件管理:整理“电子文件夹”

除了读写,还得学会管理文件,比如重命名、删除,这就跟整理文件柜里的文件夹一样。

案例一:重命名文件

import fsys;
import console;
var modify = fsys.rename("test.txt","new_test.txt");
if(modify){
    console.log("修改文件名成功")
}else {
    console.log("修改失败")
}
console.pause();
截图五
截图五

fsys.rename就像给文件夹换标签。不过要注意,得先用import fsys;引入文件系统模块,才能使用这个函数。如果文件不在当前目录,还得写清楚路径,不然会找不到文件。

案例二:删除文件

import fsys;
import console;
var delete = fsys.delete("new_test.txt");
if(delete){
    console.log("删除成功")
}else {
    console.log("删除失败")
}
console.pause();
截图六
截图六

删除文件的时候可把我紧张坏了,毕竟删了就找不回来了。fsys.delete就像把文件夹扔进垃圾桶,测试的时候一定要用专门的测试文件,千万别删错重要文件!

四、综合习题:从写入到计算的实战

题目是创建data.txt,写入5行数字,再读取每行数字加1后输出。乍一看觉得好难,但一步步拆分就没那么可怕了。

import console;

var file = io.file("/data.txt","w+b");
for(i = 1; 5; 1){
    file.write(i,'\n');
}
file.close();
file = io.file("/data.txt","r");
while(true){
    var line = file.read();
    if(!line) break;
    var num = tonumber(line);
    console.log(num+1)
}
file.close();

console.pause();
截图七
截图七

写入部分和之前学的差不多,用循环把1到5这5个数字依次写进文件。读取部分,因为文件里的数字其实是文本形式,不能直接做加法,所以要用tonumber把文本转成数字,这样才能进行计算。

 


最新回复 (0)
返回