LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【JavaScript】HTML5 纯JS利用 FileReader 打开读取和保存txt文本文件

admin
2023年11月28日 23:35 本文热度 685

JS作为网页客户端最常用的语言之一,其在处理本地文件方面有着非常重要的作用。本文将对JS打开本地文件进行多方面的分析和阐述。

一、原生Javascript打开本地文件

在JS中,我们可以通过 input 元素的 type 属性为 file 来创建上传文件的表单组件。通过该组件,我们可以让用户选择本地文件并将其上传至服务器。示例代码如下:

<input type="file" id="file">
// JS代码
const input = document.getElementById('file');
input.addEventListener('change', (e) => {
  const file = e.target.files[0];
  console.log(file);
});

通过对 input 组件的监听,我们可以获取上传的文件,从而进一步处理文件内容。例如,我们可以利用 FileReader 对象来读取文件内容并将其展示在页面上。代码如下:

const input = document.getElementById('file');
input.addEventListener('change', (e) => {
  const file = e.target.files[0];
  const reader = new FileReader();
  reader.readAsText(file);
  reader.addEventListener('load', (e) => {
    const result = e.target.result;
    console.log(result);
  });
});

通过上述代码,我们可以通过 input 元素上传本地文件并读取其中的文本内容。

二、使用第三方库打开本地文件

在处理本地文件过程中,我们可以利用一些成熟的第三方库来实现更为复杂的操作。例如,使用 FileSaver.js 库可以将数据以某种格式保存在本地文件中。示例代码如下:

import { saveAs } from 'file-saver';
const data = new Blob(['hello, world!'], { type: 'text/plain;charset=utf-8' });
saveAs(data, 'hello.txt');

通过上述代码,库会弹出一个保存文件的框,让用户输入保存的文件名和文件格式,然后将数据保存到本地文件中。

三、使用Electron打开本地文件

在处理本地文件的桌面应用程序中,我们可以使用 Electron 来实现打开和处理本地文件的功能。示例代码如下:

const { dialog } = require('electron').remote;
dialog.showOpenDialog((fileNames) => {
  if (fileNames === undefined) {
    console.log("No file selected");
    return;
  }
  let fileName = fileNames[0];
  fs.readFile(fileName, 'utf-8', (err, data) => {
    if (err) {
      alert("An error ocurred reading the file :" + err.message);
      return;
    }
    console.log(data);
  });
});

通过上述代码,我们可以弹出一个选择文件的窗口,选择本地文件,并且读取其中的文本内容。

四、在浏览器端预览本地文件内容

为了能够在页面中显示本地文件的内容,我们可以使用一些前端组件来实现。例如,使用 PDF.js 可以在页面中渲染PDF文件;使用 SheetJS 可以解析Excel文件并将其转换为JSON格式。示例代码如下:

<!-- 在页面中引入pdf.js库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js"></script>
<!-- 在页面中引入SheetJS库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>
<!-- 在页面中引入PDF和Excel文件并渲染 -->
<div id="pdf-container"></div>
<div id="excel-container"></div>
<script>
  // 渲染PDF文件
  const pdfContainer = document.getElementById('pdf-container');
  const loadingTask = pdfjsLib.getDocument('/path/to/pdf');
  loadingTask.promise.then(function(pdf) {
    // pdf.js 渲染PDF文件到指定的容器中
    pdf.getPage(1).then(function(page) {
      const viewport = page.getViewport({ scale: 1.0 });
      const canvas = document.createElement('canvas');
      const context = canvas.getContext('2d');
      canvas.height = viewport.height;
      canvas.width = viewport.width;
      pdfContainer.appendChild(canvas);
      page.render({
        canvasContext: context,
        viewport: viewport
      });
    });
  });
  // 解析Excel文件并渲染表格
  const excelContainer = document.getElementById('excel-container');
  const workbook = XLSX.readFile('/path/to/excel');
  const sheet_name_list = workbook.SheetNames;
  const json = XLSX.utils.sheet_to_json(workbook.Sheets[sheet_name_list[0]]);
  const table = document.createElement('table');
  table.border = 1;
  excelContainer.appendChild(table);
  json.forEach((row) => {
    const tr = document.createElement('tr');
    table.appendChild(tr);
    Object.keys(row).forEach((key) => {
      const td = document.createElement('td');
      td.innerText = row[key];
      tr.appendChild(td);
    });
  });
</script>

上述代码展示了如何使用 PDF.js 渲染页面中的 PDF 文件,并使用 SheetJS 解析 Excel 文件,并将其呈现为 HTML 表格的形式。

五、使用Node.js打开本地文件

在服务器端,我们可以使用 Node.js 来处理本地文件。例如,使用 fs 模块,我们可以轻松地读取、写入、重命名等本地文件。示例代码如下:

const fs = require('fs');
// 读取本地文件
fs.readFile('/path/to/file', 'utf-8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
// 写入本地文件
fs.writeFile('/path/to/file', 'Hello, world!', (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
// 重命名本地文件
fs.rename('/path/to/file', '/path/to/newfile', (err) => {
  if (err) throw err;
  console.log('The file has been renamed!');
});

通过上述代码,我们可以轻松地操作本地文件,包括读取、写入和重命名等功能。

结语

本文对Javascript打开本地文件进行详细的阐述,从原生Javascript开始,逐步介绍了使用第三方库、Electron、浏览器端预览以及Node.js等多方面的内容。通过本文的学习,相信读者对JS处理本地文件的方式有了更为清晰的认识。



该文章在 2023/11/28 23:35:19 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved