import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class InputOutput
{
public static void main(String[] args)
{
int b=0;
try
{
FileInputStream in=new FileInputStream("f:\\io\\share\\pp.txt");//用\\和/是一样的
FileOutputStream out=new FileOutputStream("f:/io/pp2.txt");//没有文件会自动建,但是目录一定要有
while((b=in.read())!=-1)
{
out.write(b);
}
in.close();//用完要关闭
out.close();
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
字符流和缓冲流
package IOPractice;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Buffer
{
public static void main(String[] args)
{
String s=null;
try
{
BufferedReader reader=new BufferedReader(new FileReader("f:\\io\\share\\pp.txt")) ;//字符流
BufferedWriter writer=new BufferedWriter(new FileWriter("f:/io/pp2.txt"));
while((s=reader.readLine())!=null)//一行一行读数据
{
writer.write(s);
}
reader.close();//用完要关闭
writer.close();
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
转换流,往文件中添加内容OutStreamWriter
try
{
//转换流
OutputStreamWriter osw=new OutputStreamWriter(
new FileOutputStream("f:\\io\\share\\pp.txt"));
osw.write("as");//往文件里写东西
osw.close();
osw=new OutputStreamWriter(
new FileOutputStream("f:\\io\\share\\pp.txt",true),//加了true属性:往原有内容后添加内容
"gbk");//可以指定字符集编码
osw.write("好");
osw.close();
} catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
数据流DataInputStream
ByteArrayOutputStream baos=new ByteArrayOutputStream();//字节数组输出流
DataOutputStream dos=new DataOutputStream(baos);//可以将不同类型一次性写进去
try
{
dos.writeBoolean(true);
dos.writeDouble(Math.random());
ByteArrayInputStream bais=new ByteArrayInputStream(baos.toByteArray());
DataInputStream dis=new DataInputStream(bais);
System.out.println(dis.readBoolean());//先写的先读,读出的是类型而不是字节或字符
System.out.println(dis.readDouble());
dos.close();dis.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
ObjectInputStream/ObjectOutputStream对象操作
package io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class ObjectStream {
public static void main(String[] args) throws Exception{
try {
T t=new T();
t.i=90;
FileOutputStream fos=new FileOutputStream("e:/log/log.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis=new FileInputStream("e:/log/log.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
T tRead=(T)ois.readObject();
System.out.println(tRead.i+","+tRead.k);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class T implements Serializable
{
int i=11;
int j=9;
transient int k=3;//使得k透明的 不进入序列化
}