Java IO流

本文深入探讨了Java中的IO流概念,包括InputStream和OutputStream的基本使用,以及它们的子类如FileInputStream、FileOutputStream等。此外,还介绍了如何序列化一个类,并提供了查看目录下文件数量及将图片存储到磁盘上的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IO流顶层:
InputStream; 子类:InputStream,FileInputStream,FilterInputStream,DataInputStream等(常见);
OutputStream;
OutputStream,FileOutputStream,FilterOutputStream,DataoutputStream等(常见)
Writer;
OutputStreamWriter
BufferedWriter
Reader;
inputStreamReader
BufferedReader
常见的三件套;
输入流:
在这里插入图片描述
输出流:
在这里插入图片描述
序列化一个类:

package object1;

import java.io.Serializable;

public class Da implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String name;
	private Integer age;
	private String sex;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Da() {
		super();
	}
	public Da(String name, Integer age, String sex) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "Da [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
	
}

查看有目录下有多少文件:

package object1;

import java.io.File;


public class Size {
public static void main(String[] args) {
   File file = new File("d://project");
    lietand(file); 
	
}

private static void lietand(File file) {
	if(file.isFile()) {System.out.println(file);}
	else if(file.isDirectory()) {
		File[] files=file.listFiles();
		for (File file2 : files) {
			lietand(file2);
		}
		
	}
	
}

private static void test() {
	File file=new File("D:");
	long total=file.getTotalSpace();
	long use=file.getFreeSpace();
	System.out.println(total/1024/1024/1024);
	System.out.println(use/1024/1024/1024);
}
}

设置日志文件:在这里插入图片描述
在你磁盘存储最大中存储一张图片:

package newyears;


import java.io.File;
import java.io.FileInputStream;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class Demo1 {
//	private static File[] listRoots;

	public static void main(String[] args) {
		File[]  roots= File.listRoots();
		
		int a = 0;
		File aa;
		
		for(int i=0;i<roots.length-1;i++)
		{ if(roots[i].getTotalSpace()>roots[i+1].getTotalSpace())
		{ 
			aa=roots[i];
			roots[i]=roots[i+1];
			roots[i+1]=aa;
			}}
		
		try {
			InputStream in=new FileInputStream("C://Users//mcfeng//Pictures//Camera Roll//dog.jpg");
			OutputStream out=new FileOutputStream(roots[4].toString()+"dabenxiang.jpg");
			
		
//			File files=new File(roots[4].toString()+"dabenxiang.jpg");
//			if(!files.exists())
//			{files.createNewFile();}
			
			
			byte[] bytes=new byte[1024];
			int len=in.read(bytes);
			
			while(len!=-1) {
				out.write(bytes, 0, len);
				len=in.read(bytes);
				
			}
			
			
			
			
		} catch ( IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值