我遇到了一个问题,需要逐行读取文本文件。使用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。