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应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,涉及文件、网络、内存等数据传输。本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的...
java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了一整套类库,使得开发者能够有效地读取和写入数据到不同的源和目标,如文件、网络、内存缓冲区等。Java IO体系结构设计得...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...
《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...
Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...
Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...
JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...
Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...
Java IO 与 装饰模式 在Java编程中,输入输出(IO)处理是程序设计中的重要组成部分,用于读取、写入和处理数据。Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...
Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...