📄 javaiodemo.java
字号:
// ==================== Program Discription =====================
// 程序名称:示例2-2 : JavaIODemo.java
// 程序目的:学习java io
// ==============================================================
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.err.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());
Test t=(Test)in.readObject();
in.close();
System.out.println(t.getValue());
}
catch(IOException e)
{
e.printStackTrace();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
//使用java压缩文件
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();
demo.readAndWriteSerialObject();
demo.zipFile();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -