Android 读取csv格式数据文件

简介: Android 读取csv格式数据文件

前言


什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在主流数据格式是采用的JSON,但是另一种就是.csv格式的数据,这种数据通常由数据库直接提供,进行读取。下面来看看简单的使用吧


正文


首先还是先来创建一个项目,名为ReadCSV

20200720091858242.png


准备.csv格式的文件,点击和风APILocationList


20200720092250286.png


下载ZIP,保存到本地,然后解压,这个时候在你的项目文件中新建一个assets文件夹,注意创建的位置


20200720092643737.png


然后打开刚才解压后的文件夹,把iso3166.csv复制到这个新建的文件夹下。


2020072009292091.png


这里先以Text的格式放置,这个时候你会发现右上角多了一个两个操作选项(如果你是第一次复制csv文件的话),分别是安装插件和同意忽略


20200720093031784.png


Android Studio编译器默认是不能直接使用.csv文件的,所以要安装插件,点击Install plugins ,会出现


20200720093510181.png


等待下载


20200720093548762.png


点击OK就会配置你下载的插件,Android Studio每次配置插件之后都要重启一下,插件才会生效的,再重启之前,再安装一个翻译插件吧,如果你已经安装过了,就直接重启吧。

安装翻译插件,点击File → Settings…


20200720093828120.png


点击Plugins,切换到Marketplace ,输入 Translation,等待搜索结果

20200720094150484.png



如上图所示就是第一个,点击Install进行下载安装,安装好之后


20200720094412631.png


点击Restart IDE 进行重启,静静地等待编译通过,这个时候你可以泡一杯咖啡。


20200720095135816.png


可以看到这个时候你的编译器已经可以正常打开.csv格式文件了,然后这个文件中的第一行到第四行都删掉,因为都是没有用的数据,


20200720102823981.png


可以看到都是用逗号分隔开的,这就映证了百度百科的说法,那么现在就可以开始读取这个文件里的内容了,其实就跟读取txt差不多的。


打开MainActivity

然后在onCreate中写入如下代码


    InputStreamReader is = null;
        try {
            is = new InputStreamReader(getAssets().open("iso3166.csv"));
            BufferedReader reader = new BufferedReader(is);
            reader.readLine();//读取每行
            String line;
            while ((line = reader.readLine()) != null) {
                Log.d("line -->",line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }


代码很简单的,看一下就明白了,运行一下


20200720095916743.png


这样数据就读取到了,那么我们刚才安装的翻译插件起到什么作用呢?你有没有这样的疑惑呢?下面来使用这个翻译插件,选中MainActivity,鼠标右键


20200720100350935.png


第一个是翻译,第二个是翻译和替换,点击第一个


20200720100434884.png


是不是很爽呢?再也不用担心命名的问题了,知道用法之后,我们进入到iso3166.csv,翻译第一行的第一个单词


20200720100617804.png


可以看到是阿富汗,这个时候我们再运行一下


20200720103010571.png


你以为会出现乱码吗?实际上是并没有出现,但是你会发现第一行的数据没了,天杀的AS居然偷我数据。其实这还真不怪AS,这是BufferedReader.readLine()方法读取文件第一行的bug,首行第一个字符会是一个空字符,所以跳过了,这个Bug在我这里并不需要解决,可以利用的,刚好第一行的数据没有实际意思,就类似于表的表头啊,你都跳过了,我就懒得去处理了,何乐而不为呢?你说是吧!这样基本上就说完了,你可以把这些数据存到Sqlite里面,在使用的时候再调用就可以,如果你想看这方便的内容请留言给我,我给你补充上。


相关文章
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1407 4
|
8月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
540 11
|
10月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
284 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
10月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
855 19
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
1424 83
|
10月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
2468 2
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
845 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
Java Android开发 存储
Android 文件操作心得体会
android 的文件操作说白了就是Java的文件操作的处理。所以如果对Java的io文件操作比较熟悉的话,android的文件操作就是小菜一碟了。好了,话不多说,开始今天的正题吧。
1086 0

热门文章

最新文章