有啥方法可以尝试使用 JAVA 读取后缀为“.sas7bdat”、“.dta”、“.sav”和“.xpt”的文件?

Posted

技术标签:

【中文标题】有啥方法可以尝试使用 JAVA 读取后缀为“.sas7bdat”、“.dta”、“.sav”和“.xpt”的文件?【英文标题】:Is there any way I can try to read files with suffix like '.sas7bdat', '.dta', '.sav' and '.xpt' by using JAVA?有什么方法可以尝试使用 JAVA 读取后缀为“.sas7bdat”、“.dta”、“.sav”和“.xpt”的文件? 【发布时间】:2022-01-17 00:00:41 【问题描述】:

我正在开发一个模块,它可以导入不同类型的文件(目前这些文件类型是 SAS 输出格式)。当然这个模块是java写的,springboot。主要逻辑是当用户上传文件时,控制器会将文件的输入流传递给该模块,并通过文件的后缀调用相应的方法。 我做了一些调查,发现 R 语言和 python 可以做到这一点。谁能告诉我是否有另一种方法,我的意思是,只能通过 JAVA 来完成这项工作。谢谢。

【问题讨论】:

看看github.com/epam/parso 阅读.sas7bdat 文件 【参考方案1】:

sas7bdat 是一种二进制专有格式。它的布局从未公开过。有些人已经弄清楚了(就像评论中提到的parso)。如果您真的想走这条路,请使用 python 库作为指南。它将有助于 sas7bdat 和 sas7bcat。对于旧的 SAS 传输格式,请参阅我在 GitHub 上的 C# 库。新的传输格式在 SAS 网站上的描述中似乎有一些不正确的信息,我无法绕过。我已将我的代码放在 GitHub 上,以防你想尝试。

说了这么多,让我提供几句智慧的话:不要这样做。使用 python 库与在 Java 中进行比较。此外,这些库读取格式与读取/写入。请记住这一点(听起来无关紧要,仅供参考)。

【讨论】:

能给我看看你的github库链接地址吗? 在这里。我专注于通过 .NET 使用 SAS。 github.com/savian-net?tab=repositories 他可以尝试用jython运行sas7bdat python模块或者用jython编译成java类。 谢谢大家,但是我的领导要我实现一个java模块来读取这些文件。我会忙很长一段时间。

以上是关于有啥方法可以尝试使用 JAVA 读取后缀为“.sas7bdat”、“.dta”、“.sav”和“.xpt”的文件?的主要内容,如果未能解决你的问题,请参考以下文章

后缀数组(SA)总结

hdu3948-不同回文串的个数后缀数组

后缀数组(模板)

后缀树和尝试。有啥区别?

后缀数组的一些技巧

JAVA有啥好的方法可以将word里的文本读取出来