读取文件数据:
函数:
function getTextByFile(blob, encoding = 'utf-8') {
return new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onerror = reject
reader.onload = () => resolve(reader.result)
reader.readAsText(blob, encoding)
})
}
示例:
<input id="input" type="file" accept="text/*" onchange="onInput()" />
<textarea id="output"></textarea>
<script>
function onInput() {
const input = document.querySelector('#input')
const output = document.querySelector('#output')
getTextByFile(input.files[0], 'gb2312').then(res => output.value = res)
}
</script>
导出文本到文件:
函数:
function exportText(data, fileName) {
const blob = data instanceof Blob ? data : new Blob([data])
const link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a')
link.href = (window.URL || window.webkitURL).createObjectURL(blob)
link.download = fileName || new Date().valueOf() + '.txt'
link.dispatchEvent(new MouseEvent('click'))
}
示例:
var text = 'This is demo text.'
exportText(text, 'demo.txt')
<textarea id="input"></textarea>
<button id="output" onclick="onOutput()">Output</button>
<script>
function onOutput() {
const input = document.querySelector('#input')
exportText(input.value, 'demo.txt')
}
</script>