如何从 Android 中的可下载链接读取 CSV 文件

问题描述

在我目前正在制作的应用中,我需要从可下载链接读取 CSV 文件显示其数据。

例如,考虑这个链接https://api.covid19india.org/csv/latest/case_time_series.csv

如果您点击链接,它会下载一个 CSV 文件

所以,我想要做的是,当用户打开应用程序时,我想访问这个 CSV 链接中的数据,解析它并在回收者视图中在屏幕上显示数据。

怎么做?

解决方法

我发现此 Kotlin 代码是使用 Volley 的 stringRequest 以 CSV 格式获取数据的一种方式。在这种情况下,我们将所有数据作为一个字符串,其中行由 \n 分隔,行中的数据由逗号分隔(,

对于此示例代码,我从以下 URL 访问日期:https://sample-videos.com/csv/Sample-Spreadsheet-10-rows.csv

val queue = Volley.newRequestQueue(this)
val url = "https://sample-videos.com/csv/Sample-Spreadsheet-10-rows.csv"
val stringRequest = StringRequest(
    Request.Method.GET,url,{ response ->
        // Display the first 500 characters of the response string.
        binding.csvDataTextView.text = "Response is: ${response.substring(0,500)}"
        val allLinesInResponse = response.substring(0)
        var rowsData: List<String> = allLinesInResponse.split("\n")
        Log.d("abc","The Volley request worked")
    },{ 
        Log.d("abc","The Volley request didn't work!")
    })
queue.add(stringRequest)
queue.start()

可能还有其他更好的方法,但这是有效的方法之一。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...