有时候在调试代码时,需要格式化输出JSON字符串,使其便于开发者/测试者查看,本文记录的就是使用Gson如何格式化输出JSON字符串。

Gson默认的JSON输出是紧凑的JSON格式,这意味着在输出的JSON结构中没有任何空白字符,因此,在JSON输出中,字段名及其字段值,对象字段和数组中的对象间都没有空白字符,另外“null”字段在输出时会忽略(NOTE:collections/arrays中的null值会保留)。如果要使用Pretty Print输出JSON,可以使用GsonBuilder配置JsonPrintFormatter,该格式默认会输出80字符宽度,2字符缩进,右边距为4字符。

Continue reading

本文记录Java中关闭Chained-Streams的正确方式。

在Java开发过程中,我们时常使用这样的方式创建输入输出流,如下方式1:

1
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

或者如下方式2创建:

1
2
3
FileOutputStream fos = new FileOutputStream(...)
BufferedOS bos = new BufferedOS(fos);
ObjectOutputStream oos = new ObjectOutputStream(bos);

使用方式1时,我们仅仅使用br.close()是否会造成流资源的不正确关闭?使用方式2时,是否需要把创建的每个流(oos/bos/fos)都依次关闭呢?

Continue reading

项目中有时需要在Java类中启动一个长时间运行的服务进程(监听进程、监控进程等),且该进程需要在tomcat启动时启动,在tomcat停止时退出。在项目开发的过程中,我需要在Java类中启动一个监听进程,而在该进程成功启动后,一调用该监听服务进程时,该进程就挂掉(退出),现将解决方法记录如下。

Continue reading

本文记录的是如何在Java类中调用外部可执行脚本,例如shell脚本、Python脚本、ruby脚本等。文中阐述了Runtime.exec和ProcessBuilder.start两种调用脚本的方式,官方推荐使用后者的方式,下面对其分别讲述。

Continue reading

本文记录的是使用Java获取Http请求中的参数,包括Get和Post请求。

获取Get请求中的参数

1
2
3
4
5
6
7
8
9
10
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

String params = req.getQueryString();

PrintWriter pw = resp.getWriter();
pw.write("you get request is success: query params = " + params);
pw.flush();
pw.close();
pw = null;
}
Continue reading

本文记录的是使用HttpURLConnection发送Get和Post请求的示例, 关于HttpURLConnection的使用请参考: JDK中URLConnection使用详解.

这里将发送请求的方法封装在HttpRequest的类中,使用HttpURLConnection发送Http的Get和Post请求需要引入下面的类:

1
2
3
4
5
6
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
Continue reading

本打算自己写一篇博客记录Java中URLConnection的使用,网上搜索了一番,发现这篇JDK中的URLConnection参数详解写得很好了,转载该文如下。

针对JDK中的URLConnection连接Servlet的问题,网上虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验做如下总结。

Continue reading

使用JavaMail发送邮件一文中,记录了使用JavaMail发送普通文本给多个链接人。这里记录如何使用JavaMail发送带附件的邮件,只是在SendMail类中添加一个新的方法:

public void sendMail(List<String> recipients, String subject, String sendContent, List<String> filePaths)

recipients表示联系人列表,subject代表邮件主题,sendContent代表发送的邮件正文,filePaths代表添加为邮件附件的文件地址列表, 其代码如下:

Continue reading

本文记录的是如何使用java实现发送简单文本内容邮件给一个或者多个联系人。邮件服务 Java API 支持使用 JavaMail(javax.mail)接口来发送电子邮件。

在使用javax.mail接口时,需要设置发件人,涉及到发件人的授权认证,于是创建了MailAuthenticator类,其代码如下:

Continue reading
  • page 1 of 1

CaryaLiu

宅男一枚, 在前进的道路上.


iOS开发工程师


成都