学习一段时间以后写的一些常用的javaUnits

package com.help;


import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
import java.math.BigInteger;


import javax.swing.JOptionPane;


public  final  class MyUnit {//私有构造器不能构造方法
private MyUnit(){};
//求int型数的内存表示(二进制补全32位);
public static String getIntBinaryString(int num) {
String str=Integer.toBinaryString(num);
str="00000000000000000000000000000000"+str;
str=str.substring(str.length()-32);
return str;
}
public static int random(int max,int min){
return min+(int)(Math.random()*(max-min));
}
//随机取数,给定最大值
public static int random(int max){
return random(0,max);
}
//遍历一个int数组
public static void println(final int[] arr) {
if (arr == null) {
return;
}
for (int a : arr) {
System.out.printf("%5d", a);
}
System.out.println();
}
//求一个大数据的阶乘
public static BigInteger factorial(int n) {
BigInteger result = BigInteger.ONE;
if (n < 2) {
return result;
}
for (int i = 2; i <= n; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
return result;
}
//判断回文数的方法
public static boolean isHuiWen(int num) {
int[] temp = new int[19];
int count = 0;
while (num > 0) {
temp[count++] = num % 10;
num /= 10;
}
for (int i=0; i< count/2; i++)
if (temp[i] != temp[count - i - 1])
return false;
return true;
}
//判断素数的方法
public static boolean isSuShu(int num) {   
if(num<2){
return false;
}
boolean b=true;//反证法,认为b是素数
int k=(int)Math.sqrt(num);
for (int i = 2; i <= k; i++) {
if(num%i==0){
b=false;
break;
}
}
return b;
}
//随机范围取数
public static int[] randomNumber(int n,int m) {
int[] arr=new int[n];  
boolean flag=false;   
int k=0;
while(k<arr.length){   
flag=true;            
int sum=MyUnit.random(m);
for (int i = 0; i < arr.length; i++) {
if(arr[i]==sum){
flag=false;
break;
}
}
if(flag){
arr[k]=sum;
k++;
}
}
return arr;
}
//通过字节流向文件写入内容
public static boolean saveByteFile(String data,File file){
boolean b=true;
if(data==null||file==null||file.getName().equals("")){
return !b;
}
OutputStream out=null;
try {
out=new FileOutputStream(file);
out.write(data.getBytes());
} catch (IOException e) {
b=false;
}finally{
close(out);
}return b;
}
//通过字节流读取文件内容的方法
public static String readByteFile(File file){
String str=null;
InputStream in=null;
try {
in=new FileInputStream(file);
byte[] bs=new byte[10000];
int len=0;
while((len=in.read(bs))!=-1){
str=new String(bs, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
close(in);
} return str;
}
//关闭文件资源的方法
public static void close(Closeable able){
if(able!=null){
try {
able.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//通过字符流写入文件的方法
public static boolean saveCharFile(String data,File file){
boolean b=true;
if(data==null||file==null||file.getName().equals("")){
return !b;
}
Writer out=null;
try {
out=new FileWriter(file);
out.write(data);
out.flush();
} catch (IOException e) {
b=false;
}finally{
close(out);
}return b;
}
//通过字符流读取文件的方法
public static String readCharFile(File file){
String str=null;
Reader in=null;
try {
in=new FileReader(file);
char[] bs=new char[1000];
int len=0;
while((len=in.read(bs))>0){
str=new String(bs, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
MyUnit.close(in);
}return str;


}
//通过对象写入文件的方法
public static boolean saveObjectFile(Object obj,File file){
boolean b=true;
if(obj==null||file==null||file.getName().equals("")){
return !b;
}
OutputStream output = null;
ObjectOutputStream out = null;
try {
output = new FileOutputStream(file);
out = new ObjectOutputStream(output);
out.writeObject(obj);
out.flush();
} catch (IOException e) {
b=false;
} finally {
MyUnit.close(out);
MyUnit.close(output);
}return b;
}
//通过对象读取文件的方法
public static Object readObjectFile(File file){
Object obj = null;
InputStream input = null;
ObjectInputStream in = null;
try {
input = new FileInputStream(file);
in = new ObjectInputStream(input);
while ((obj = in.readObject()) != null) {
return obj;
}
} catch (IOException e) {
System.out.println("到了文件的末尾!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
MyUnit.close(in);
MyUnit.close(input);
}return obj;
}
//从一个文件复制对象到另一个文件
public static void copyObjectFile(File firstFile,File secondFile){
Object obj=readObjectFile(firstFile);
saveObjectFile(obj, secondFile);
}
//从一个文件复制字节流到另一个文件
public static void copyByteFile(File firstFile,File secondFile){
String data=readByteFile(firstFile);
saveByteFile(data, secondFile);
}
//从一个文件复制字符流到另一个文件
public static void copyCharFile(File firstFile,File secondFile){
String data=readCharFile(firstFile);
saveCharFile(data, secondFile);
}


//窗口显示信息
public static void showMessage(Object msg) {
JOptionPane.showMessageDialog(null, msg);
}
//窗口读取信息
public static String readLine(String prompt) {
return JOptionPane.showInputDialog(prompt);
}
//窗口写入int信息输出
public static int readInt(String prompt) {
return Integer.parseInt(readLine(prompt));
}
//将所有文件从一个文件夹复制到另一个文件夹,通过字节流
public static boolean copyFile(String srcFile,String descFile){
boolean b=true;
InputStream in=null;
OutputStream out=null;
File file=new File(srcFile);
String[] str=null;
if(file.exists()){
str=file.list();
}
String srcPath=null;
String descPath=null;
File srcfile=null;
File descfile=null;
for (String string : str) {
srcPath=srcFile+"\\"+string;
descPath=descFile+"\\"+string;
srcfile=new File(srcPath);
descfile=new File(descPath);
try {
in=new FileInputStream(srcfile);
out=new FileOutputStream(descfile);
byte[] bs=new byte[10000];
int len=0;
while((len=in.read(bs))!=-1){
out.write(bs, 0, len);
}
} catch (FileNotFoundException e) {
b=false;
e.printStackTrace();
} catch (IOException e) {
b=false;
e.printStackTrace();
}finally{
MyUnit.close(in);
MyUnit.close(out);
}

}
return b;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值