黑马程序员技术交流社区
标题:
【重庆中心】企业中各种会使用到的工具类之StreamUtils
[打印本页]
作者:
安之啊
时间:
2018-1-28 16:14
标题:
【重庆中心】企业中各种会使用到的工具类之StreamUtils
/**
*
@author
anzhi
*
@date
2018/1/28
*
@desc
*/
public class
StreamUtils {
final static int
BUFFER_SIZE
=
4096
;
/**
* 将InputStream转换成String
*
*
@param
in
* InputStream
*
@return
String
*
@throws
Exception
*
*/
public static
String
InputStreamTOString
(InputStream in) {
ByteArrayOutputStream outStream =
new
ByteArrayOutputStream()
;
byte
[] data =
new byte
[
BUFFER_SIZE
]
;
String string =
null;
int
count =
0
;
try
{
while
((count = in.read(data
,
0
,
BUFFER_SIZE
)) != -
1
)
outStream.write(data
,
0
,
count)
;
}
catch
(IOException e) {
e.printStackTrace()
;
}
data =
null;
try
{
string =
new
String(outStream.toByteArray()
,
"UTF-8"
)
;
}
catch
(UnsupportedEncodingException e) {
e.printStackTrace()
;
}
return
string
;
}
/**
* 将InputStream转换成某种字符编码的String
*
*
@param
in
*
@param
encoding
*
@return
*
@throws
Exception
*/
public static
String
InputStreamTOString
(InputStream in
,
String encoding) {
String string =
null;
ByteArrayOutputStream outStream =
new
ByteArrayOutputStream()
;
byte
[] data =
new byte
[
BUFFER_SIZE
]
;
int
count = -
1
;
try
{
while
((count = in.read(data
,
0
,
BUFFER_SIZE
)) != -
1
)
outStream.write(data
,
0
,
count)
;
}
catch
(IOException e) {
e.printStackTrace()
;
}
data =
null;
try
{
string =
new
String(outStream.toByteArray()
,
encoding)
;
}
catch
(UnsupportedEncodingException e) {
e.printStackTrace()
;
}
return
string
;
}
/**
* 将String转换成InputStream
*
*
@param
in
*
@return
*
@throws
Exception
*/
public static
InputStream
StringTOInputStream
(String in)
throws
Exception {
ByteArrayInputStream is =
new
ByteArrayInputStream(in.getBytes(
"UTF-8"
))
;
return
is
;
}
/**
* 将String转换成InputStream
*
*
@param
in
*
@return
*
@throws
Exception
*/
public static byte
[]
StringTObyte
(String in) {
byte
[] bytes =
null;
try
{
bytes =
InputStreamTOByte
(
StringTOInputStream
(in))
;
}
catch
(IOException e) {
}
catch
(Exception e) {
e.printStackTrace()
;
}
return
bytes
;
}
/**
* 将InputStream转换成byte数组
*
*
@param
in
* InputStream
*
@return
byte[]
*
@throws
IOException
*/
public static byte
[]
InputStreamTOByte
(InputStream in)
throws
IOException {
ByteArrayOutputStream outStream =
new
ByteArrayOutputStream()
;
byte
[] data =
new byte
[
BUFFER_SIZE
]
;
int
count = -
1
;
while
((count = in.read(data
,
0
,
BUFFER_SIZE
)) != -
1
)
outStream.write(data
,
0
,
count)
;
data =
null;
return
outStream.toByteArray()
;
}
/**
* 将byte数组转换成InputStream
*
*
@param
in
*
@return
*
@throws
Exception
*/
public static
InputStream
byteTOInputStream
(
byte
[] in)
throws
Exception {
ByteArrayInputStream is =
new
ByteArrayInputStream(in)
;
return
is
;
}
/**
* 将byte数组转换成String
*
*
@param
in
*
@return
*
@throws
Exception
*/
public static
String
byteTOString
(
byte
[] in) {
String result =
null;
InputStream is =
null;
try
{
is =
byteTOInputStream
(in)
;
result =
InputStreamTOString
(is
,
"UTF-8"
)
;
}
catch
(Exception e) {
e.printStackTrace()
;
}
return
result
;
}
/**
* 将byte数组转换成String
*
*
@param
in
*
@return
*
@throws
Exception
*/
public static
String
getString
(String in) {
String is =
null;
try
{
is =
byteTOString
(
StringTObyte
(in))
;
}
catch
(Exception e) {
e.printStackTrace()
;
}
return
is
;
}
// InputStream 转换成byte[]
public byte
[]
getBytes
(InputStream is)
throws
IOException {
ByteArrayOutputStream baos =
new
ByteArrayOutputStream()
;
byte
[] b =
new byte
[
BUFFER_SIZE
]
;
int
len =
0
;
while
((len = is.read(b
,
0
,
BUFFER_SIZE
)) != -
1
) {
baos.write(b
,
0
,
len)
;
}
baos.flush()
;
byte
[] bytes = baos.toByteArray()
;
System.
out
.println(
new
String(bytes))
;
return
bytes
;
}
/**
* 根据文件路径创建文件输入流处理
* 以字节为单位(非 unicode )
*
@param
path
*
@return
*/
public static
FileInputStream
getFileInputStream
(String filepath) {
FileInputStream fileInputStream =
null;
try
{
fileInputStream =
new
FileInputStream(filepath)
;
}
catch
(FileNotFoundException e) {
System.
out
.print(
"错误信息:文件不存在"
)
;
e.printStackTrace()
;
}
return
fileInputStream
;
}
/**
* 根据文件对象创建文件输入流处理
* 以字节为单位(非 unicode )
*
@param
path
*
@return
*/
public static
FileInputStream
getFileInputStream
(File file) {
FileInputStream fileInputStream =
null;
try
{
fileInputStream =
new
FileInputStream(file)
;
}
catch
(FileNotFoundException e) {
System.
out
.print(
"错误信息:文件不存在"
)
;
e.printStackTrace()
;
}
return
fileInputStream
;
}
/**
* 根据文件对象创建文件输出流处理
* 以字节为单位(非 unicode )
*
@param
file
*
@param
append
true:文件以追加方式打开,false:则覆盖原文件的内容
*
@return
*/
public static
FileOutputStream
getFileOutputStream
(File file
,boolean
append) {
FileOutputStream fileOutputStream =
null;
try
{
fileOutputStream =
new
FileOutputStream(file
,
append)
;
}
catch
(FileNotFoundException e) {
System.
out
.print(
"错误信息:文件不存在"
)
;
e.printStackTrace()
;
}
return
fileOutputStream
;
}
/**
* 根据文件路径创建文件输出流处理
* 以字节为单位(非 unicode )
*
@param
path
*
@param
append
true:文件以追加方式打开,false:则覆盖原文件的内容
*
@return
*/
public static
FileOutputStream
getFileOutputStream
(String filepath
,boolean
append) {
FileOutputStream fileOutputStream =
null;
try
{
fileOutputStream =
new
FileOutputStream(filepath
,
append)
;
}
catch
(FileNotFoundException e) {
System.
out
.print(
"错误信息:文件不存在"
)
;
e.printStackTrace()
;
}
return
fileOutputStream
;
}
}
作者:
Yin灬Yan
时间:
2018-1-29 15:22
我来占层楼啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2