【每日心得】2018年4月16日

原创 2018年04月16日 23:48:38

# 每日心得

# 2018年4月16日


今日新增加的Python题库里又有关于读取CSV文件的题目。目前对文件读写并不熟悉,因此归纳整理了Python和Java读取CSV文件的方法。


Python:

(法一)通过csv库

import csv

def read(filepath):
    with open(filepath) as csvfile:
        readcsv = csv.reader(csvfile, delimiter = ',')
        for row in readcsv:
            // do something

(法二)通用方法(格式为.txt时)

def read(filepath):
    file = open(filepath, "r")
    for line in file:
        // do something


Java:(实际为.txt格式)

public static void printCSVFile(String filePath)  {
	    try {
	        FileInputStream f = new FileInputStream(filePath);
	        InputStreamReader it = new InputStreamReader(f);
	        BufferedReader reader = new BufferedReader(it);
	        String line = null;

	        while ((line = reader.readLine()) != null) {
	            String item[] = line.split(",");
	           // do something
            }

            reader.close();
            it.close();
            f.close();

        } catch (IOException e) {
	        e.printStackTrace();
        }
}

另外,今天的Android学习也涉及到文件。

文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何格式化处理,所有数据都是原封不动地保存到文件当中的,因而它比较适合用于存储一些简单的文本数据或二进制数据。

——摘自郭霖《第一行代码——Android》(第2版)第197页

主要是利用  openFileOutput()  和  openFileInput()  两种方法,示例代码如下:

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MainActivity extends AppCompatActivity {

    private EditText edit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit = (EditText) findViewById(R.id.edit);
        String inputText = load();
        if (!TextUtils.isEmpty(inputText)) {
            edit.setText(inputText);
            edit.setSelection(inputText.length());
            Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        String inputText = edit.getText().toString();
        save(inputText);
    }

    public void save(String inputText) {
        FileOutputStream out = null;
        BufferedWriter writer = null;
        try {
            out = openFileOutput("data", Context.MODE_PRIVATE);
            writer = new BufferedWriter(new OutputStreamWriter(out));
            writer.write(inputText);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (writer != null) {
                    writer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public String load() {
        FileInputStream in = null;
        BufferedReader reader = null;
        StringBuilder content = new StringBuilder();
        try {
            in = openFileInput("data");
            reader = new BufferedReader(new InputStreamReader(in));
            String line = "";
            while ((line = reader.readLine()) != null) {
                content.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return content.toString();
    }
}

注:此代码根据郭霖《第一行代码——Android》(第2版)6.2节内容整合。

在 onDestroy() 中实现文件的存储,而在 onCreate() 中检查并加载文件内容。


 今天还学习了部分SharedPreferences存储的知识,待以后整理。


# End

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/llzhihao/article/details/79968176

2018年软考网络工程师基础知识软考视频教程

紧抓考生痛点,按照短期、速效、重点突出的原则,课件中直接给出知识点的出题形式,让您在短时间内抓住考试要点,顺利通过考试。 掌握的基础知识包括:计算机组成与结构、操作系统、系统开发和运行基础知识、标准化和知识产权、数据通信基础、广域通信网、局域网和城域网、无线通信网、网络互连与互联网、下一代互联网、网络安全、网络操作系统与应用服务器配置、交换机与路由器、网络管理、网络系统分析与设计等内容。
  • 2016年06月08日 16:48

2018年4月16日

已经三天没有进入状态去学习python了,我内心一直有一个声音让我松懈下来,这个声音不是学习给我带来的焦虑,而是生活,是家庭带来的影响,父母的观念,老婆的想法,这确实是很难调和到一致的,我能理解她们的...
  • weixin_41928429
  • weixin_41928429
  • 2018-04-16 10:59:11
  • 164

2018年2月16日训练日记

今天有必要吐槽一下昨晚山大的比赛。。。共两个小时,我只做了一个小时。那时候刚好网站炸了就拜年去了。。。A题就是一个填幻方,我的做法是百度(emmm)但是比赛结束后不知道重判了多少次。。TLE OLE ...
  • LSD20164388
  • LSD20164388
  • 2018-02-16 20:44:05
  • 365

通话记录保存

4.3 通话记录保存 在通话到结束的整个过程中,为了保存通话信息,包括通话号码,通话时间等。在通话完全结束后,就会将这些信息插入到通话记录的数据库中。 1,插入通话记录 在前面通话状态更新一节中,Te...
  • u012439416
  • u012439416
  • 2018-01-01 12:41:38
  • 62

支票大写日期

  某某年:都大写,如2007年,写作:贰零零柒 1月到10月:前面加零,比如10月,写作 :零壹拾 11、12月:壹拾壹 ,壹拾贰 1-10日:零壹 ……零壹拾 20、30日:零贰拾,零叁拾 11-...
  • xiaoK
  • xiaoK
  • 2008-10-09 14:45:00
  • 4303

Source Insight 4.00.0089.7z-破解版(2018年2月16日更新)

  • 2018年02月05日 19:52
  • 20.95MB
  • 下载

个人感兴趣游戏本信息汇总_2018年4月

品牌 型号 价格 处理器 显卡 内存 硬盘 屏幕 键盘 神舟战神 Z7M-KP5GC 5500 i5-8300H GTX1050TI...
  • qq_23599965
  • qq_23599965
  • 2018-04-08 11:40:46
  • 92

面向对象基本概念简单了解——2018年4月21日(心得笔记)

数据表与简单Java类映射    现在假设有如下的关系表,现在要求实现如下的数据关联操作:        一个部门有多个雇员;        一个雇员有一个或零个领导;程序关系    在本程序中可以发...
  • Gchehe7
  • Gchehe7
  • 2018-04-21 22:00:12
  • 32

2018年3月16日学习笔记

使用css创建一个小三角形1、定义div width:0px;height:0px;2、定义小三角边框实线 border-style:soild;3、定义小三角边框宽度 border-width:0p...
  • weixin_41762365
  • weixin_41762365
  • 2018-03-16 16:36:39
  • 85

【教育部出大招】人工智能进入全国高中新课标,2018秋季学期执行

1月16日上午,教育部召开新闻发布会,介绍了《普通高中课程方案和语文等学科课程标准(2017年版)》的有关情况。在此次“新课标”改革中,正式将人工智能、物联网、大数据处理正式划入新课标。2018秋季入...
  • flyingsir_zw
  • flyingsir_zw
  • 2018-01-22 09:31:15
  • 464
收藏助手
不良信息举报
您举报文章:【每日心得】2018年4月16日
举报原因:
原因补充:

(最多只允许输入30个字)