try

Java编程的逻辑 (58) - 文本文件和字符流

╄→гoц情女王★ 提交于 2020-02-26 22:20:15
上节我们介绍了如何以字节流的方式处理文件,我们提到,对于文本文件,字节流没有编码的概念,不能按行处理,使用不太方便,更适合的是使用字符流,本节就来介绍字符流。 我们首先简要介绍下文本文件的基本概念、与二进制文件的区别、编码、以及字符流和字节流的区别,然后我们介绍Java中的主要字符流,它们有: Reader/Writer:字符流的基类,它们是抽象类。 InputStreamReader/OutputStreamWriter:适配器类,输入是InputStream,输出是OutputStream,将字节流转换为字符流。 FileReader/FileWriter:输入源和输出目标是文件的字符流。 CharArrayReader/CharArrayWriter: 输入源和输出目标是char数组的字符流。 StringReader/StringWriter:输入源和输出目标是String的字符流。 BufferedReader/BufferedWriter:装饰类,对输入输出流提供缓冲,以及按行读写功能。 PrintWriter:装饰类,可将基本类型和对象转换为其字符串形式输出的类。 除了这些类,Java中还有一个类Scanner,类似于一个Reader,但不是Reader的子类,可以读取基本类型的字符串形式,类似于PrintWriter的逆操作。 理解了字节流和字符流后

理解Android进程创建流程

半世苍凉 提交于 2020-02-26 09:39:04
copy from : http://gityuan.com/2016/03/26/app-process-create/ 基于Android 6.0的源码剖析, 分析Android进程是如何一步步创建的,本文涉及到的源码: /frameworks/base/core/java/com/android/internal/os/ - ZygoteInit.java - ZygoteConnection.java - RuntimeInit.java - Zygote.java /frameworks/base/core/java/android/os/Process.java /frameworks/base/core/jni/com_android_internal_os_Zygote.cpp /frameworks/base/core/jni/AndroidRuntime.cpp /frameworks/base/cmds/app_process/App_main.cpp (内含AppRuntime类) /bionic/libc/bionic/fork.cpp /bionic/libc/bionic/pthread_atfork.cpp /libcore/dalvik/src/main/java/dalvik/system/ZygoteHooks.java /art

Java加密解密等操作的工具类

女生的网名这么多〃 提交于 2020-02-26 05:26:10
package com.unionpay.acp.sdk; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; import javax.crypto.Cipher; import org.apache.commons.codec.binary.Base64; import org.bouncycastle.crypto.digests.SM3Digest; /** @Author 2285841929 @ClassName SecureUtil @Description acpsdk安全算法工具类 @date 2017-7-22 下午4:08:32 */ public class SecureUtil { /** 算法常量: SHA1 */ private static final String ALGORITHM_SHA1 = "SHA-1"; /** 算法常量: SHA256 */ private static final

异常机制(finally关键字)(final finalize finally 区别)

允我心安 提交于 2020-02-26 02:32:52
关于finally语句块 1.finally语句块可以直接和try语句块联用:try…finally… 2.try…catch…finally也可以 3.finally语句块中的代码是一定会执行的,所以通常在程序中为了保证某资源一定会释放,所以一般在finally语句块中释放资源 public class Test { public static void main ( String [ ] args ) { try { System . out . println ( "Test01" ) ; return ; } finally { Systemo . out . println ( "Tets02" ) ; //Test01和Test02都会输出,由于有finally关键字,会先输出完Test02后再return返回 } //分析以下代码,有FileInputStream出现,则会需要异常处理机制,但是有try没有catch,发生异常后会终止掉程序但是finally后面的语句还是会执行,所Test01不会输出,Test02会输出 try { FileInputSream fis = new FileInputStream ( "c:/as.txt" ) ; System . out . println ( "Test01" ) ; } finally { System .

Java中处理异常的9个最佳实践

丶灬走出姿态 提交于 2020-02-26 02:31:31
Java中处理异常的9个最佳实践 Java中的异常处理不是一个简单的话题。初学者很难理解,甚至有经验的开发人员也会花几个小时来讨论应该如何抛出或处理这些异常。 这就是为什么大多数开发团队都有自己的异常处理的规则和方法。如果你是一个团队的新手,你可能会惊讶于这些方法与你之前使用过的那些方法有多么不同。 然而,有几种异常处理的最佳方法被大多数开发团队所使用。下面是帮助改进异常处理的9个最重要的方法。 在Finally中清理资源或者使用Try-With-Resource语句 通常情况下,你在try中使用了一个资源,比如 InputStream ,之后需要关闭它。在这种情况下,一个常见的错误是在try的末尾关闭了资源。 public void doNotCloseResourceInTry() { FileInputStream inputStream = null; try { File file = new File("./tmp.txt"); inputStream = new FileInputStream(file); // use the inputStream to read a file // do NOT do this inputStream.close(); } catch (FileNotFoundException e) { log.error(e); }

HttpClient用法的简单

半城伤御伤魂 提交于 2020-02-26 02:30:49
一、使用方法 使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 创建HttpClient对象。 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求 参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。 调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。 释放连接。无论执行方法是否成功,都必须释放连接 二、实例 实例1 package org . hj . service ; import org . apache . http . NameValuePair ; import org .

Java 异常try..catch finally 执行的顺序,以及其中常见几种执行情况

ⅰ亾dé卋堺 提交于 2020-02-25 19:21:40
Java 异常try…catch finally 执行的顺序,以及其中常见几种执行情况 在程序运行过程中,如果处理异常的部分包含finally的处理,那么无论代码是否发生异常,finally中的代码总会执行。 finally包含哪些处理逻辑? 1、IO流的关闭操作一般设置在finally中 2、数据库的连接关闭操作设置在finally中 情况一(try中有return,finally中没有return) : public class TryTest { public static void main ( String [ ] args ) { System . out . println ( test ( ) ) ; } private static int test ( ) { int num = 10 ; try { System . out . println ( "try" ) ; return num += 80 ; } catch ( Exception e ) { System . out . println ( "error" ) ; } finally { if ( num > 20 ) { System . out . println ( "num>20 : " + num ) ; } System . out . println ( "finally" ) ;

Python高级应用程序设计任务

冷暖自知 提交于 2020-02-25 12:43:48
Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容: (注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一、主题式网络爬虫设计方案(15分) 1.主题式网络爬虫名称    去哪儿网攻略信息爬取 2.主题式网络爬虫爬取的内容与数据特征分析    爬取内容:文章链接、标题、简要秒速信息、发布者、发布者个人标签、出发日期、天数、拍照数量、出行的类型、旅行的标签、途经、行程路线、人均消费、观看数、点赞数、评论数   数据特征分析: 旅游出行类别分析 旅游出行各类别所占比例分析 对出行类别、出行描述与人均消费可视化图分析 各月份旅游量分析 出行天数、人均消费、观看数散点图分析 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点)    实现思路:编写 HandleQuNar 类,HandleQuNar 类中 __init__ () 初始化方法,初始化爬虫过程中的 User-Agent;handle_travel()方法对url迭代,采用requests库的get()获取对应的html网页,利用BeautifulSoup的find_all方法获取每一页的10个li进行遍历,利用find等方法获取标签内相应的文本并对获取的数据进行处理。每爬取完一个li(攻略信息),将其设置成字典的格式,调用save()方法进行保存

Java 操作 HBase 教程

本小妞迷上赌 提交于 2020-02-25 00:30:56
一、简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法。那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了。所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java 原生API。我们可以通过 hbase-client 来实现 HBase 数据库的操作。所以,这次主要介绍该组件的基本用法。 在使用 hbase-client 之前,有几个要点需要注意: 客户端需要能访问 Zoopkeeper,再获得 HMaster、RegionServer 实例进行操作 客户端需运行在HBase/Hadoop 集群内,HBase会使用 hostname 来定位节点,因此要求客户端能访问到对应的主机名(或子域名) 如果是远程客户端则需要配置本地的hosts文件。 下面这个图,有助于理解 Client 与 HBase 集群的交互架构: 下面开始介绍 client 的使用。 二、hbase-client 引入 在 Maven 的 pom.xml 中添加依赖: org.apache.hbase hbase-client 2.1.5 slf4j-api org.slf4j slf4j-log4j12 org.slf4j org.apache.hbase hbase 2.1.5 这里需要注意的是

异常处理

岁酱吖の 提交于 2020-02-24 07:54:50
程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容 使用try和except就能处理异常   try是我们需要处理的代码   except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码   except支持多分支   有没有一个能处理所有错误的类型 : Exception      有了万能的处理机制仍然需要把能预测到的问题单独处理      单独处理的所有内容都应该写在万能异常之前   else : 没有异常的时候执行else中的代码   finally : 不管代码是否异常,都会执行      finally和return相遇的时候 依然会执行      函数里做异常处理用,不管是否异常去做一些收尾工作 1 try: 2 3   错误 4 5 except ValueError: 6 print('输入的数据类型有误') 7 except Exception: 8 print('你错了,老铁') 9 else: 10 print('没有异常的时候执行else中的代码') 11 print('===========') 12 13 14 # def func(): 15 # try: 16 # f = open('file','w') 17 # '''''' 18 # return True 19 # except: 20 #