javascript下载文本文件需三步:创建blob对象(如new blob([content], {type: 'text/plain;charset=utf-8'}))、用url.createobjecturl生成临时url、通过a标签download属性触发下载,并在下载后调用url.revokeobjecturl清理。

JavaScript 使用 Blob 对象生成并下载文本文件,核心是三步:创建 Blob、用 URL.createObjectURL 生成临时 URL、触发 a 标签下载。
创建 Blob 对象
把文本内容包装成 Blob,需指定 MIME 类型(如 text/plain 或 text/csv),可选地设置换行符和编码:
- 纯文本常用
new Blob([content], { type: 'text/plain;charset=utf-8' }) - CSV 文件建议用
'text/csv;charset=utf-8',内容中注意用\n换行 - Blob 构造函数第一个参数必须是数组(即使只有一段字符串)
生成可下载的临时 URL
调用 URL.createObjectURL(blob) 得到一个生命周期绑定当前文档的本地 URL:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 该 URL 只在当前页面有效,刷新或关闭标签页后失效
- 为避免内存泄漏,下载完成后应尽快调用
URL.revokeObjectURL(url) - 不要重复使用同一个 URL 多次下载,每次下载都应新建 Blob 和 URL
触发自动下载
借助 <a></a> 标签的 download 属性实现静默下载:
- 创建
document.createElement('a') - 设置
a.href = url和a.download = 'filename.txt'(扩展名影响浏览器默认打开方式) - 调用
a.click()触发下载;注意某些浏览器要求在用户操作(如点击)上下文中执行,否则可能被拦截
完整示例代码
以下函数可直接调用,生成并下载一段文本:
function downloadText(content, filename = 'download.txt') {
const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
// 调用示例:
downloadText('Hello, world!\n第二行内容', 'greeting.txt');
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










