在学习jersey中看到jersey框架支持几乎多有的java原生类型的传输格式。
我学习 《Java RESTful Web Service 实战》 一书。书中有些知识点,不太常用,但是比较重要,特写下次笔记已备忘。
jersey是遵循 JAX-RS2.0规范的一个实现,旨在使用java提供RESTful服务的框架
java 原生类型中
整型数值 byte
, short
int
, long
浮点型数值 float
, double
Unicode编码字符型数值 char
布尔类型值 boolean
jersey 都提供支持,并且提供了,基础类型的数组形式的支持。
比如 byte[], char[]
也提供了 File
类型,InputStream
, Reader
这样的字节流和字符流类型。
以下代码基本演示输入类型的使用方法
java
// File @POST @Consumes(MediaType.TEXT_PLAIN) public String upFile(final File file) throws IOException { try ( FileInputStream fInput = new FileInputStream(file); FileOutputStream fOutput = new FileOutputStream(new File("temp.txt")) ) { byte buffer = new byte[2048]; int count = 0; while ( (count = fInput.read(buffer) ) != -1 ) { fOutput.write(buffer, 0, count); //将 buffer 字节数组中的内容全部写入到 fOutput 中。 } } catch (FileNotFoundException e) { e.printStackTrace(); } return "file upload complete"; }
java
// InputStream @POST @Consumes(MediaType.TEXT_PLAIN) public String postString(final InputStream input) throws IOException { ByteArrayOutputStream outputBuf = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int count = 0; while ( ( count = input.read(buffer) ) != -1 ) { outputBuf.write(buffer, 0, count); } outputBuf.flush(); return new String(outputBuf.toByteArray(), "utf-8"); }
可以看出 jersey 能支持各种类型,是应为 java 反射机制的功劳。
以上文字片段以及图片,部分来自于 《Java RESTful Web Service 实战》一书。如有版权侵犯,请联系邮箱[ychangsheng@gmail.com]。本人及时修改。