TypeScript(角度)-逐行读取文本文件

时间:2019-03-18 09:22:26

标签: angular typescript file

我在逐行读取文本文件时遇到问题。使用console.log(file)可以很好地工作,但是我需要每一行都可以对它们进行处理,所以这是我到目前为止所做的。

在api.service.ts中,我有一个从服务器下载文件的函数,该函数本身看起来像这样:

getFile(url: string): Observable<File> {
  return this.httpClient.get<File>(url, {responseType: "text"});
}

然后在app.component.ts中定义一个私有的'resultFile:File'字段,并将传入文件分配给该变量

getFile() {
    this.apiService.getFile('http://127.0.0.1:8000/media/results/MINERvA/CC0pi/v1.0/nuwro.txt').subscribe(file => {
      this.resultFile = file;
      console.log(this.resultFile);
    });
  }

正如我之前提到的,使用console.log()打印resultFile的内容可以正常工作。文件格式正确(有新行),但是当我循环遍历resultFile

for (const line of resultFile){
  console.log(line);
}

它打印每个字符而不是每行。我认为问题可能是responseType:“ text”将内容转换为纯字符串,但是我找不到任何解决方案。抱歉,这个问题很愚蠢,但我以前从未使用过JS / TS。

1 个答案:

答案 0 :(得分:2)

尝试使用newLines分割行:

for (const line of resultFile.split(/[\r\n]+/)){
  console.log(line);
}

请参阅此以查看行分隔符:Do line endings differ between Windows and Linux?