JAVA学习日记23-0728

今天学了什么

对综合实例代码进行实验

package zong;
import java.io.*;

public class IOUtils {
public static void print(byte[] ary) {
//byte[] ary = {41,4,-2,(byte)0xfe,(byte)0xff};
for(int b:ary) {
b &=0xff;
if(b <= 0xf)
System.out.print("0");
System.out.print(Integer.toHexString(b) + " ");
}
System.out.println();
}
public static byte[] read(String file) {
try {
InputStream in = new FileInputStream(file);
byte[] buf = new byte[in.available()];
in.read(buf);
in.close();
return buf;
}catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static Object deepCopy(Object obj) {
try {
ByteArrayOutputStream buf = new ByteArrayOutputStream() ;
ObjectOutputStream oos = new ObjectOutputStream(buf);
oos.writeObject (obj);//将对象序列化到byte数组流中
oos.close () ;
byte[] ary= buf.toByteArray();
ObjectInputStream ois = new ObjectInputStream (new ByteArrayInputStream(ary) ) ;
Object o = ois.readObject();//从 byte数组流中反序列化对象
ois.close() ;
return o;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void cp(File from,File to) {
try {
InputStream in = new FileInputStream(from);
OutputStream out = new FileOutputStream(to);
byte[] buf = new byte[1024];
int n;
while ((n=in.read(buf))!=-1) {
//System.out.println("n:"+n) ;
out.write(buf,0,n);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void cp1 (File from, File to) {
try{
InputStream in= new FileInputStream(from) ;
OutputStream out = new FileOutputStream(to) ;
int b;
while ((b = in.read()) != -1) {
out.write (b);
}
in.close();
out.close() ;
} catch (IOException e) {
e.printStackTrace() ;
throw new RuntimeException(e) ;
}
}
public static void cp(String from, String to) {
cp(new File(from),new File(to));
}
/**将文件按照16进制形式打印到控制台,每16个byte为一行*/
public static void print(File file) {
try {
InputStream in = new FileInputStream(file) ;
int b;
int i=1;
while ((b = in.read()) != -1) {
if(b <= 0xf)
System.out.print("0") ;
System.out.print (Integer.toHexString(b) + " ");
if(i++ % 16==0) {
System. out.println() ;
}
}
System. out.println() ;
in.close() ;
} catch (IOException e){
e.printStackTrace() ;
throw new RuntimeException(e) ;
}
}
public static void print(String file) {
print(new File(file));
}

public static void split (String file, int size) {
try {
if (size <= 0) {
throw new IllegalArgumentException ("搞啥呀!") ;
}
int idx = 0;//文件的序号
InputStream in = new BufferedInputStream(new FileInputStream(file));
OutputStream out = new BufferedOutputStream (new FileOutputStream(file+"."+idx++));
int b;
int count=0;
while ((b = in.read()) != -1) {
out.write(b);
count++ ;
if (count % (size * 1024) == 0) {
out.close() ;
out = new BufferedOutputStream (new FileOutputStream(file+"."+idx++)) ;
}
}
in.close() ;
out.close() ;
} catch (IOException e) {
e.printStackTrace() ;
throw new RuntimeException(e) ;
}
}

public static void join(String file) {
try {
String filename=file.substring(0,file.lastIndexOf(".")) ;
String num=file.substring(file.lastIndexOf(".")+1) ;
int idx = Integer.parseInt (num) ;
OutputStream out = new FileOutputStream(filename) ;
File f = new File(filename+"."+idx++) ;
while (f.exists()) {
InputStream in =new FileInputStream(f) ;
cp(in,out);
in.close() ;
f= new File(filename+"."+idx++) ;
}
out.close();
f=new File(filename+"."+idx++);
} catch (Exception e) {
e.printStackTrace() ;
throw new RuntimeException(e) ;
}
}
public static void cp(InputStream in,OutputStream out)throws IOException {
byte[] buf = new byte[1024*512];
int count;
while( (count = in.read(buf)) != -1) {
out.write(buf,0,count);
}
out.flush();
}

}

遇到的问题

代码较长,输入时出行了许多错误,对照手册进行了修改。

明天计划

练习JAVA面向对象习题

原文地址:https://www.cnblogs.com/a8047/p/13392149.html