如何在p5.js中将字符串保存到指定位置并覆盖目标文件
如何在p5.js中将字符串保存到指定文件位置?
嘿,我来帮你搞定这个问题!你现在的代码里saveStrings("happy")用法不对,而且要覆盖指定位置的文件,得调整几个地方,分两种场景来说:
1. 本地运行(使用p5.js桌面编辑器)
这种场景下可以直接写入指定路径的文件,完美实现覆盖file变量指向的目标文件。修改你的mousePressed函数即可:
修改后的完整代码
var file = "1"; var result; var meString; var splitMeString; function preload() { result = loadStrings("assets/save/"+file+".txt"); } function setup() { createCanvas(1000,650); } function draw() { meString = result+''; splitMeString = splitTokens(meString, ','); text(meString,20,20); console.log(splitMeString[2]); } function mousePressed(){ // 准备要保存的内容:这里用当前显示的meString,转成数组(saveStrings要求参数为字符串数组) var contentToSave = [meString]; // 指定和加载时一致的路径,实现覆盖原文件 saveStrings(contentToSave, "assets/save/"+file+".txt"); }
关键说明
saveStrings的正确语法是:saveStrings(字符串数组, 文件名/路径),第一个参数必须是数组(哪怕只存单个字符串也要放在数组里);- 传入和
loadStrings相同的相对路径,就能直接覆盖原文件。
2. 浏览器中运行p5.js
出于浏览器的安全限制,无法直接写入本地指定文件夹,只能触发下载功能,让用户手动保存到目标位置。不过可以设置下载的文件名,方便用户匹配原文件:
修改后的mousePressed函数
function mousePressed(){ var contentToSave = [meString]; // 设置下载文件的名称为file变量对应的文件名,用户可手动保存到assets/save文件夹 saveStrings(contentToSave, file+".txt"); }
额外提示
- 如果你想保存
splitMeString数组的内容,直接把splitMeString作为第一个参数传给saveStrings即可,它会自动将数组元素用换行分隔保存; - 确保传入的内容是合法的字符串数组,避免因参数类型错误导致报错。
内容的提问来源于stack exchange,提问作者user9773526
相关产品推荐
相关产品推荐

