¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, DreamLu All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: DreamLu 墿¥æ¢¦ (596392912@qq.com) |
| | | */ |
| | | |
| | | package org.springblade.core.tool.utils; |
| | | |
| | | import org.springframework.lang.Nullable; |
| | | |
| | | import java.io.*; |
| | | import java.nio.charset.Charset; |
| | | |
| | | /** |
| | | * æµå·¥å
·ç±» |
| | | * |
| | | * @author L.cm |
| | | */ |
| | | public class IoUtil extends org.springframework.util.StreamUtils { |
| | | |
| | | /** |
| | | * closeQuietly |
| | | * |
| | | * @param closeable èªå¨å
³é |
| | | */ |
| | | public static void closeQuietly(@Nullable Closeable closeable) { |
| | | if (closeable == null) { |
| | | return; |
| | | } |
| | | if (closeable instanceof Flushable) { |
| | | try { |
| | | ((Flushable) closeable).flush(); |
| | | } catch (IOException ignored) { |
| | | // ignore |
| | | } |
| | | } |
| | | try { |
| | | closeable.close(); |
| | | } catch (IOException ignored) { |
| | | // ignore |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * InputStream to String utf-8 |
| | | * |
| | | * @param input the <code>InputStream</code> to read from |
| | | * @return the requested String |
| | | */ |
| | | public static String readToString(InputStream input) { |
| | | return readToString(input, Charsets.UTF_8); |
| | | } |
| | | |
| | | /** |
| | | * InputStream to String |
| | | * |
| | | * @param input the <code>InputStream</code> to read from |
| | | * @param charset the <code>Charset</code> |
| | | * @return the requested String |
| | | */ |
| | | public static String readToString(@Nullable InputStream input, Charset charset) { |
| | | try { |
| | | return IoUtil.copyToString(input, charset); |
| | | } catch (IOException e) { |
| | | throw Exceptions.unchecked(e); |
| | | } finally { |
| | | IoUtil.closeQuietly(input); |
| | | } |
| | | } |
| | | |
| | | public static byte[] readToByteArray(@Nullable InputStream input) { |
| | | try { |
| | | return IoUtil.copyToByteArray(input); |
| | | } catch (IOException e) { |
| | | throw Exceptions.unchecked(e); |
| | | } finally { |
| | | IoUtil.closeQuietly(input); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Writes chars from a <code>String</code> to bytes on an |
| | | * <code>OutputStream</code> using the specified character encoding. |
| | | * <p> |
| | | * This method uses {@link String#getBytes(String)}. |
| | | * </p> |
| | | * @param data the <code>String</code> to write, null ignored |
| | | * @param output the <code>OutputStream</code> to write to |
| | | * @param encoding the encoding to use, null means platform default |
| | | * @throws NullPointerException if output is null |
| | | * @throws IOException if an I/O error occurs |
| | | */ |
| | | public static void write(@Nullable final String data, final OutputStream output, final Charset encoding) throws IOException { |
| | | if (data != null) { |
| | | output.write(data.getBytes(encoding)); |
| | | } |
| | | } |
| | | } |