首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理TSV文件

处理TSV文件
EN

Stack Overflow用户
提问于 2017-12-26 02:38:25
回答 1查看 459关注 0票数 0

我正在处理一个项目,它接收TSV文件,处理它,然后输出一个响应。我和我的朋友用Heroku和Spark把我们基于Java的程序变成了一个网络应用程序。

目前,我们的web应用程序只处理特定的.tsv文件,而其他的则不工作,我相信这是一个与.tsv文件的特定编码有关的问题。

我们的预期输入文件是从Google文档生成的.tsv文件,但目前,我们的程序无法正确地解析它。但是,如果我们将数据复制并粘贴到文本文件中,并将其保存为.tsv,那么我们的程序就能够成功地处理它。这很奇怪,因为这两个文件都有相同的内容和文本格式,但是一个文件不能工作,而另一个文件却工作。

这是当单击按钮时调用的sendData() JS函数:

代码语言:javascript
复制
function sendData() {
        var fr = new FileReader();
        fr.onload = function(event) {
            var result = event.target.result;
            $.post("/rides", result, function(result, error) {
                result = result.replace(/\n/g, "<br>");
                $(".result").html(result);
            });
        };
        var rides = $("#rides");
        var files = rides[0]['files'];
        var file = files[0];
        fr.readAsText(file, 'ASCII');
    }

这里是它通过Java接收和读取请求的地方:

代码语言:javascript
复制
public static void main(String[] args)
{
    port(getHerokuAssignedPort());
    staticFileLocation("/public");
    get("/ping", (req, res) -> "pong");
    post("/rides", (req, res) -> {
        System.out.println("parsing...");
        final RawParticipants participants = parser.parseInitialRequest(req.body());
        final AssignedRides result = orchestrator.orchestrateRides(participants);
        System.out.println(participants);
        return result.toString();
    });
}

不同的.tsv文件的输出各不相同,但从Google下载的所有文件都无法正确解析。要么我们的程序无法从Google中读取文件中的任何内容,要么它可以读取某些行,但它不能读取其他行。别忘了我的数据没什么特别的。我查看了Google是如何编码它们的.tsv文件的,看起来没有什么特别之处,只有ASCII编码,这与复制/粘贴创建的.tsv文件是一样的。因此,对于如何解决这个问题,我有些困惑,特别是当我能够输入一个具有相同信息的.tsv文件时,生成的方式不同,并且我的程序可以成功地读取它。

有人知道为什么不能处理某些.tsv文件吗?解决方案是什么?谢谢!如果需要的话,我更愿意提供更多的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 04:47:39

我以前在这个问题上被困了一段时间,但我设法解决了这个问题。.tsv文件解析不能正确工作的原因是由Google在从网站下载时生成的CRLF行终止器造成的。在某些方面,这是一个编码错误,但不需要通过深入的文件编辑来解决。我所需要做的就是将"/r/n“替换为常规的"/n”,以表示.tsv文件中的新行。这些行终止符被放置在每一行的末尾,并干扰了文件的正确读取。因此,为了解决这个问题,我只需将它们替换为我使用的换行符的默认表示法:"/n“。瞧!已修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47973427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档