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");
}
}
java线程安全的单例类
最新推荐文章于 2024-05-28 19:32:35 发布