java线程安全的单例类
2016-04-18 17:51
459 查看
package com.yunshouhu; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if(instance==null) { instance = new Singleton(); } } } return instance; } /* 此处使用一个内部类来维护单例 */ private static class SingletonFactory{ private static Singleton singleton=new Singleton(); } public static Singleton getInstance2() { return SingletonFactory.singleton; } public void copyFile(String apth, String bpath) { FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { fileInputStream = new FileInputStream(apth); fileOutputStream = new FileOutputStream(bpath); byte[] buffer = new byte[4096];// block size是4096B int len = -1; while ((len = fileInputStream.read(buffer)) != -1) { fileOutputStream.write(buffer, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (fileOutputStream != null) { fileOutputStream.flush(); fileOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (fileInputStream != null) fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { Singleton.getInstance2().copyFile("d:/tool/Oem7F7.exe", "d:/Oem7F7.exe"); System.out.println("ok"); } }
相关文章推荐
- SpringMVC层跟JSon结合
- java程序生成二维码
- Java NIO 之 I/O基本概念(二)
- Dropwizard与Spring Boot比较
- Eclipse JDK的安装
- Axis2发布webservice示例(使用eclipse)
- Java程序的路径问题
- java 连接sql server 2008 数据库 笔记
- eclipse重定向输入输出到文件
- java获取当前时间
- Java静态工程方法的优点和缺点
- 每天一道算法题(五)Leetcode – Word Break (Java)
- Glide错误java.lang.IllegalArgumentException: You cannot start a load for a destr
- 我们应该知道的java位运算
- Spring MVC返回json字符串时数据格式化
- springMVC ajax 提交数组到后台
- java 多个线程之间错误处理
- JAVA新建文件
- java中关键字volatile的作用
- java中的wait()方法和sleep()方法的区别是什么?| Java 基础