import java.io.*;
import java.util.zip.*;
public class JavaIODemo{
String temp=new String();
String t=new String();
public void readByLineFromConsoleAndPrint(){
System.out.println("==从控制台获得输入==");
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一行字符:");
System.out.println(temp=in.readLine());
}
catch(IOException e){
e.printStackTrace();
}
}
public void readByLineFromFileAndPrint(){
System.out.println("==从文件获得输入==");
try{
BufferedReader in=new BufferedReader(new FileReader("demo.out"));
temp="";
String s=new String();
while((s=in.readLine())!=null)
temp+=s+"\n";
in.close();
System.out.println(temp);
}
catch(FileNotFoundException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}
public void readFromMemoryAndPrint(){
System.out.println("==从内存获得输入==");
try{
StringReader stringReader=new StringReader(temp);
int t;
while((t=stringReader.read())!=-1)
System.out.println((char)t);
}
catch(IOException e){
e.printStackTrace();
}
}
public void writeToFile()
{
System.out.println("==文件输出流==");
try{
BufferedReader in=new BufferedReader(new StringReader(temp));
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("demo.out")));
while((t=in.readLine())!=null)
out.println(t);
out.close();
}
catch(IOException e){
e.printStackTrace();
}
}
public void randomAccessFile(){
try{
System.out.println("==随机访问文件==");
RandomAccessFile file=new RandomAccessFile("rand.out","rw");
for(int i=0;i<10;i++)
file.writeDouble(i*1.12);
file.seek(100);
file.writeDouble(577.4545);
file.close();
file=new RandomAccessFile("rand.out","r");
for(int i=0;i<10;i++)
System.out.println("value"+i+"="+file.readDouble());
file.seek(100);
System.out.println(file.readDouble());
file.close();
}
catch(IOException e){
e.printStackTrace();
}
}
public void formattedInputAndOutput()
{
System.out.println("==格式化数据输出==");
try{
DataOutputStream out=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("data.data")));
out.writeDouble(54.7769);
out.writeBytes("this is bytes\n");
out.writeChars("this is chars\n");
out.writeFloat(100.6f);
out.writeUTF("this is utf encoding string\n");
out.close();
System.out.println("==格式化数据输入==");
DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("data.data")));
BufferedReader reader=new BufferedReader(new InputStreamReader(in));
System.out.println(in.readDouble());
System.out.println(in.readLine());
System.out.println(in.readLine());
System.out.println(in.readFloat());
System.out.println(in.readLine());
}
catch(EOFException e){
System.out.println("end of stream");
}
catch(IOException e){
e.printStackTrace();
}
}
/*public void readAndWriteSerialObject(){
System.out.println("==读写序列化对象==");
Test test=new Test("init value");
try{
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("test.ser"));
out.writeObject("保存序列化对象");
out.writeObject(test);
out.close();
ObjectInputStream in=new ObjectInputStream(new FileInputStream("test.ser"));
System.out.println(in.readObject());
in.close();
System.out.println(t.getValue());
}
catch(IOException e){
e.printStackTrace();
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
}*/
public void zipFile(){
System.out.println("==使用java压缩文件==");
try{
FileOutputStream file=new FileOutputStream("demo.zip");
CheckedOutputStream csum=new CheckedOutputStream(file,new Adler32());
ZipOutputStream zip=new ZipOutputStream(new BufferedOutputStream(csum));
zip.setComment("Zip输出流测试");
BufferedReader reader=new BufferedReader(new FileReader("Test.java"));
zip.putNextEntry(new ZipEntry("Test.java"));
int c;
while((c=reader.read())!=-1)
zip.write(c);
zip.close();
}
catch(IOException e){
e.printStackTrace();
}
}
public static void main(String []args){
JavaIODemo demo=new JavaIODemo();
demo.readByLineFromConsoleAndPrint();
demo.readFromMemoryAndPrint();
demo.writeToFile();
demo.formattedInputAndOutput();
demo.randomAccessFile();
demo.readByLineFromFileAndPrint();
file://demo.readAndWriteSerialObject();
demo.zipFile();
}
}