当前位置:首页 > 开发 > 编程语言 > Java IO > 正文

java IO

发表于: 2013-04-24   作者:chinrui   来源:转载   浏览次数:
摘要: IO流 一、 列出指定目录下所有文件 import java.io.*; class IOTest1 { public static void main(String[] args) { File dir = new File("D:\\图库"); new IOTest1().showDir(dir, 1); } public voi
IO流
一、 列出指定目录下所有文件
import java.io.*;
class IOTest1 
{
	public static void main(String[] args) 
	{
		File dir = new File("D:\\图库");
		new IOTest1().showDir(dir, 1);
	}
	public void showDir(File dir, int level) {
		File[] files = dir.listFiles();
		StringBuilder sb = new StringBuilder();
		sb.append("|--");
		for(int i = 1; i < level; i++) {
			sb.insert(0,"   ");
		}
		for(int i = 0; i < files.length; i++) {
			System.out.println(sb.toString() + files[i].getName());
			if(files[i].isDirectory()) {
				 showDir(files[i], level + 1);
			}
		}
	}
}

递归使用的两个条件:1、要有判断,能够让程序结束;2、注意递归运算的次数,避免内存溢出。
二、 删除文件夹下面所有目录及文件
import java.io.*;
class DeleteDemo 
{
	public static void main(String[] args) 
	{
		File dir = new File("d:\\Test");
		deleteAll(dir);
	}
	public static void deleteAll(File dir) {
		File[] files = dir.listFiles();
		for(int i = 0; i < files.length; i++) {
			if(files[i].isDirectory())
				deleteAll(files[i]);
			else
				System.out.println(files[i].toString() + "==file==" + files[i].delete());
		}
		System.out.println(dir + "--dir--" + dir.delete());
	}
}

三、 Properties类的使用(继承Hashtable,是集合类)
import java.util.*;
class PropertiesTest 
{
	public static void main(String[] args) 
	{
		getAndSet();
	}
	public static void getAndSet() {
		Properties prop = new Properties();
		prop.setProperty("qin","rui");
		prop.setProperty("c","yuan");
		//System.out.println(prop);
		Set<String> keys = prop.stringPropertyNames();
		for(String key : keys) {
			System.out.println(key + "==" + prop.getProperty(key));
		}
	}
}

四、 Properties类结合IO流读写配置文件
import java.util.*;
import java.io.*;
class PropertiesIOTest 
{
	public static void main(String[] args) 
	{
		Properties props = new Properties();
		InputStreamReader fr = null;
		try
		{
			fr = new InputStreamReader(new FileInputStream("D:\\java1\\IO\\info.txt"));
			//从文件中获取配置信息存入Properties中
			props.load(fr);
			getInfo(props);
			setInfo(props);
			getInfo(props);
		}
		catch (IOException e)
		{
			e.printStackTrace();
		} finally {
			try {
				if(fr != null) {
					fr.close();
					fr = null;
				}
				
			}
			catch (IOException e){
				e.printStackTrace();
			}
		}
	}
	public static void getInfo(Properties props) {
		//使用stringPropertyNames()获取,配置信息的键,返回一个Set集合
		Set<String> keys = props.stringPropertyNames();
		for(String key : keys) {
			System.out.println(key + "==" + props.getProperty(key));
		}
	}
	//设置配置信息并存入文件中
	public static void setInfo(Properties props) throws IOException {
		props.setProperty("love","yuanrui");
		PrintWriter pw = new PrintWriter(new PrintStream("D:\\java1\\IO\\info.txt"));
		//使用store方法把更改的信息存入文件中,会自动调用list()方法
		props.store(pw,null);
		//关闭IO流是必须要做的操作,减少内在占用
		pw.close();
	}
}

五、 软件使用计数器
import java.util.*;
import java.io.*;
class countDemo 
{
	public static void main(String[] args) throws IOException
	{
		Properties props = new Properties();
		File file = new File("conf.ini");
		//judge whether the file exist, if not creat a new one
		if(!file.exists()) {
			file.createNewFile();
		}
		BufferedReader br = new BufferedReader(new FileReader(file));
		//load the data from the file
		props.load(br);

		//declare a value to note the use time
		int count = 0;
		String value = props.getProperty("time");
		if(value != null) { 
			count = Integer.parseInt(value);
			if(count >= 5) {
				System.out.println("您的使用时间快到!请注册后再继续使用!");
				return ;
			}
		}
		count++;
		props.setProperty("time",count + "");

		//declare a writer to save the data to the file
		BufferedWriter bw = new BufferedWriter(new FileWriter(file));
		props.store(bw , null);
		System.out.println(props);
	}
}

六、 使用SequenceInputStream将多个文件整合
import java.io.*;
import java.util.*;
class SequenceDemo 
{
	public static void main(String[] args) throws IOException
	{
		//save the inputstream in the vector
		Vector<FileInputStream> vec = new Vector<FileInputStream>();
		vec.add(new FileInputStream("info.txt"));
		vec.add(new FileInputStream("conf.ini"));
		//use the method elements() to get the enum
		Enumeration<FileInputStream> en = vec.elements();

		//create a sequenceInputStream contains more than one inputStream
		SequenceInputStream sis = new SequenceInputStream(en);
		FileOutputStream fos = new FileOutputStream("add.ini");

		//create a space to restore the data read from the file
		byte[] bt = new byte[1024];
		int len = 0;
		while((len = sis.read(bt)) > 0) {
			fos.write(bt, 0, len);
		}
		sis.close();
		fos.close();
	}
}

七、 文件切割
import java.io.*;
class SplitDemo 
{
	public static void main(String[] args) throws IOException
	{
		splitFile();
	}
	public static void splitFile() throws IOException {
		File file = new File("D:\\图库\\我的图片\\个人图库\\八里沟\\1-4.jpg");
		FileInputStream fis = new FileInputStream(file);
		FileOutputStream fos = null;
		int len = 0;
		int count = 1;
		byte[] bt = new byte[1024*1024];
		while((len = fis.read(bt)) != -1) {
			fos = new FileOutputStream("D:\\java1\\IO\\split\\" + (count++) + ".part");
			fos.write(bt, 0, len);
			fos.close();
		}
		if(fos != null)
			fos.close();
		fis.close();
	}
}


java IO

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)
编辑推荐
java所有的IO机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。那么
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字
第一讲 什么是IO? IO分类? 1、何为流:流是JAVA中的一个重要机制,通过流我们能自由地控制文件,内存
概述 Java中输入、输出的处理通过java.io包下的类和接口来支持,在这个包下主要包括输入、输出两种I
前面我们已经讲了介质流,下面我们来看过滤流(包装流),前面说过,过滤流必须配合其他的一些输入
1 File类 public class File extends Object implements Serializable, Comparable<File> 1.1
java io包最重要的是5个类和1个接口:File,OutputStream,InputStream,Reader,Writer,Serializa
Scalable IO in Java http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf 基本上所有的网络处理程序都
来自http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html,写的很详细 Java流操作有关的
IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号