javascript - 为什么 FileReader 会在文件中附加换行符?

标签 javascript drag-and-drop filereader

我正在尝试使用 FileReader 加载删除的文件,但如果文件不以 1 结尾,则会在文件中附加一个神秘的“\n”字符。

删除一个不以换行符结尾的文本文件,您会发现该文件的最后一个字符将是“\n”(代码 10)。

let fileReader = new FileReader();

fileReader.onload = function(event) {
  let lastChar = this.result.charCodeAt(this.result.length - 1);
  
  document.querySelector("#last_char").innerText = lastChar;
  document.querySelector("#length").innerText = this.result.length;
  
  for (let i = 0; i < this.result.length; ++i) {
     console.log(this.result.charCodeAt(i));
  }
}

function drop(event) {
  event.stopPropagation();
  event.preventDefault();

  var files = event.dataTransfer.files; //It returns a FileList object

  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    fileReader.readAsText(file);
  }
}
* {

  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

#drop_area {
  width: 100%;
  height: 50%;
  border: 3px dashed #aaaaaa;
  border-radius: 10px;
  text-align: center;
}
<div id="drop_area" ondrop="drop(event)" ondragover="event.preventDefault()">drop a text file here</div>
<div>Last char:</div>
<div id="last_char"></div>

<div>Length:</div>
<div id="length"></div>

最佳答案

原来这是Unix的东西,与javascript完全无关。似乎它总是以换行符终止,无论您是否插入它,无论您的编辑器是否显示它。所以发生的事情是,我认为我的文件没有换行符,因为我的编辑器没有显示它,而事实上它确实显示了。

哎呀!

关于javascript - 为什么 FileReader 会在文件中附加换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59796846/

相关文章:

javascript - 使用 MediaDevices.getUserMedia() API 时,与 Chrome 相比,为什么 Safari 会生成巨大的视频?

javascript - jquery 如何找出 JSON 对象包含的内容

javascript:读取纯 html 字符串并使用 DOMparser 更改链接路径

javascript - 如何使用 object.id 从列表中显示 object.name

30 次操作后的 Android 3.0 拖放 IllegalArgumentException

c# - 将文件拖到桌面快捷方式 - 不在应用程序中打开文件

javascript - 在javascript中拖动时选择文本

java从方法返回String []

javascript - Web Audio API getFloatFrequencyData 函数将 Float32Array 参数数据设置为 -Infinity 值数组

javascript - FileReader - 准备新文件,即使是同一个文件