您的位置:首页 > 编程语言 > Java开发

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");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: