使用FileReader读取文件时的一些错误

时间:2019-06-26 14:56:47

标签: java angular typescript

我正在使用一个Web应用程序,其中必须读取文件并解析其内容。所以我正在使用Spring-boot back和Angular front管理它。

当我使用FileReader读取带有html输入的文件并将其内容发送到背面时,有时可以使用正则表达式正确解析该内容,有时则不能(即使该内容是从一个到另一个的复制/粘贴)。

当我直接通过Java方式读取内容时,没有任何问题,但这不是我想要的。

这是用于读取给定文件(openFileEventEmitter)内容的功能:

open(event: any) {
  let reader = new FileReader();
  let openFile = this.openFile;
  reader.addEventListener('load', function() {
    openFile.emit(<string>reader.result);
  }, false);
  reader.readAsText(event.target.files[0]);
}

内容成功变成红色,成功发送到后面,但是给定的字符串不能匹配任何正则表达式,即使我在控制台上显示它时也看到完全相同的内容。

当我使用Java函数(效果很好)时:

Files.lines(Paths.get(completePath), StandardCharsets.UTF_8).forEach(line -> {
  // Parsing code
});

问题在于某些文件始终可以工作,而另一些文件则永远无法工作。

这意味着,如果代码可以读取文件的某些内容,则可以读取该文件的任何内容。反之亦然,如果文件不能为红色,则将永远无法为红色。


另一个奇怪的是,当我在控制台上显示这些行时,会有不同的行为。

System.out.println("This line has been skipped: /" + line + "/");

对于随机字符串而不是行,我可以看到:

This line has been skipped: /A random String/

但是对于文件中无法解析的一行,结果如下:

/his line has been skipped: /A nonworking String

0 个答案:

没有答案