java常用IO操作示例代码

目录

文件整体读写

对象序列化与反序列化

文本文件字符读写

数据流

更多示例代码请看我的其他博客或GitHub。不定期更新,学习过程中用到就写到哪里,作为模板供以后使用和复习。


 


文件整体读写

需要注意的是,FileOutputStream第二个参数是true,write就会在文件的末尾开始写入(如果文件原本存在的话)是false的话就会替换原文件,如果文件不存在java会自动创建文件。

	public  void fileIO() throws IOException
	{
		FileInputStream input=new FileInputStream("C:\\Users\\雨\\Desktop\\input.txt");
		FileOutputStream output=new FileOutputStream("C:\\Users\\雨\\Desktop\\output.txt",true);
		input.transferTo(output);
		input.close();
		output.close();
	}

 

对象序列化与反序列化

注意:

ObjectOutputStream​(OutputStream out)初始化时会向输出流中写入序列化流头信息(serialization stream header),ObjectInputStream​(InputStream in)初始化时会从输入流中读取这个头信息,如果读不到就会报错。

枚举类型不能当做对象读写。

import java.io.Serializable;

public class User implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}




	public void objectIO() throws IOException, ClassNotFoundException
	{
		User user=new User();
		user.setName("objectOutputTest");
		FileOutputStream output=new FileOutputStream("C:\\Users\\雨\\Desktop\\objectOutput.txt",true);
		ObjectOutputStream objectOutput=new ObjectOutputStream(output);
		objectOutput.writeObject(user);
		FileInputStream input=new FileInputStream("C:\\Users\\雨\\Desktop\\objectOutput.txt");
		ObjectInputStream objectInput=new ObjectInputStream(input);
		User u2=(User) objectInput.readObject();
		System.out.println(u2.getName());
		objectOutput.close();
		objectInput.close();
	}

文本文件字符读写

	public void stringFileIO() throws IOException
	{
		FileReader fileReader=new FileReader("C:\\Users\\雨\\Desktop\\input.txt");
		char[] cbuf=new char[5];
		while(fileReader.read(cbuf)!=-1)
		{
			for(char c:cbuf)
				System.out.print(c);
		}
		fileReader.close();
		
		fileReader=new FileReader("C:\\Users\\雨\\Desktop\\input.txt");
		FileWriter fileWriter=new FileWriter("C:\\Users\\雨\\Desktop\\output.txt",true);
		fileReader.transferTo(fileWriter);
		fileWriter.close();
		fileReader.close();
	}

数据流

数据流可以以与平台无关的方式从底层字节流读写java基本类型和字符串,可以用在socket通信中。读取基本数据类型时,要求输入流读取的数据是DataOutput的子类对象所写的。

	public void dadaStream() throws IOException
	{
		FileOutputStream fos=new FileOutputStream("C:\\Users\\雨\\Desktop\\output.txt",true);
		DataOutputStream dos=new DataOutputStream(fos);
		dos.writeInt(51);
		dos.writeBoolean(true);
		dos.writeUTF("为中华之崛起而读书 @zel");
		FileInputStream fis=new FileInputStream("C:\\Users\\雨\\Desktop\\output.txt");
		DataInputStream dis=new DataInputStream(fis);
		System.out.println(dis.readInt());
		System.out.println(dis.readBoolean());
		System.out.println(dis.readUTF());
		dos.close();
		dis.close();
		
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值