`
lazyzhong
  • 浏览: 7661 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA——IO

    博客分类:
  • java
 
阅读更多

 

转载篇——

原文地址——http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html

 

 1、创建新文件:

		File file=new File("F:\\hi.txt");
		try {
			file.createNewFile();//在F盘就会产生一个新文件。
		} catch (IOException e) {
			e.printStackTrace();
		}

 

2、File类的两个常量:

	public static void main(String[] args) {
		System.out.println(File.separator);
		System.out.println(File.pathSeparator);
	}
result:
\
;
//因为在linux和windows的分隔符不同,所以应该尽量使用File类的常量。

 

3、删除文件:

	public static void main(String[] args) {
		File file=new File("F:"+File.separator+"hi.txt");
		if(file.exists()){ //删除文件之前应该进行判断...避免出现FileNotFound
			file.delete();
		}
	}

 

 4、创建文件夹:

	public static void main(String[] args) {
		String dir="F:"+File.separator+"hello";
		File f=new File(dir);
		f.mkdir();
	}

 

5、列出一个目录的所有文件,包括隐藏文件:

	public static void main(String[] args) {
		String dir="F:"+File.separator;
		File f=new File(dir);
		String[] str=f.list(); //只会列出目录的文件,不会列出子目录下的文件...list()方法返回的是文件名,如果想要返回的是完整的包括路口的文件名,可以使用
		for(int i=0;i<str.length;i++){
			System.out.println(str[i]);
		}
	}

	public static void main(String[] args) {
		String dir="F:"+File.separator;
		File f=new File(dir);
		File[] str=f.listFiles();
		for(int i=0;i<str.length;i++){
			System.out.println(str[i]);
		}
	}

 

6、搜索指定目录的全部文件,采用递归调用的方法:

	public static void main(String[] args) {
		String dir="F:"+File.separator;
		File f=new File(dir);
		print(f);
	}
	
	public static void print(File f){
		if(f!=null){
			if(f.isDirectory()){
				File[] files=f.listFiles();
				if(files!=null){
					for(int i=0;i<files.length;i++){
						print(files[i]);
					}
				}
			}else{
				System.out.println(f);
			}
		}
	}

 

7、使用RandomAccessFile写入文件(字节流):

	public static void main(String[] args) throws IOException {
		String filename="F:"+File.separator+"hi.txt";
		File f=new File(filename);
		if(f!=null){
			if(f.exists()){
				RandomAccessFile demo=new RandomAccessFile(f,"rw");
				demo.writeBytes("wahaha");
				demo.writeInt(10);
				demo.writeBoolean(true);
				demo.writeChar('A');
				demo.close();
			}
		}
	}
//打开查看发现有乱码

 

8、OutPutStream写入文件(字节流):

	public static void main(String[] args) throws IOException {
		String filename="F:"+File.separator+"hi.txt";
		File f=new File(filename);
		if(f!=null){
			if(f.exists()){
				OutputStream out=new FileOutputStream(f); //这样会覆盖掉整个文件的内容,如果想要在文件中追加内容,构造函数应该改成new FileOutputStream(f,true);
				String str="娃哈哈啊";
				byte[] b=str.getBytes();
				out.write(b);
				out.close();
			}
		}
	}

 

9、读取文件的内容(字节流):

	public static void main(String[] args) throws IOException {
		String filename="F:"+File.separator+"hi.txt";
		File f=new File(filename);
		if(f!=null){
			if(f.exists()){
				InputStream in=new FileInputStream(f);
				byte[] b=new byte[1024];
				int len=0;
				while((len=in.read(b))>0){ // 文件读取到末尾后返回-1
					System.out.println(new String(b,0,len)); //避免产生大量空格
				}
			}
		}
	}

 

10、字符流操作文件和字节流差不多。有Writer、Reader...字节流和字符流操作文件的区别:实际上字节流在操作的时候本身是不会用到缓冲区的,是文件本身的直接操作的,但是字符流在操作的时候下后是会用到缓冲区的,是通过缓冲区来操作文件的。如果我们在使用字符流操作的时候,最后没有使用close(),那么文件中是没有内容的,因为需要刷新缓冲区。

 

11、文件复制:

	public static void main(String[] args) throws IOException {
		String filename="F:"+File.separator+"hi.txt";
		File f=new File(filename);
		if(f!=null){
			File file2=new File("F:"+File.separator,"hello.txt");
			InputStream in=new FileInputStream(f);
			OutputStream out=new FileOutputStream(file2);
			if(in!=null){
				byte[] b=new byte[1024];
				int len=0;
				while((len=in.read(b))>0){
					out.write(b, 0, len);
				}
			}
			out.close();
			in.close();
		}
	}

 

12、输入输出重定向:

	public static void main(String[] args) throws IOException {
		System.out.println("hello");
		File file=new File("F:"+File.separator+"hello.txt");
		try {
			System.setOut(new PrintStream(new FileOutputStream(file,true)));
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		System.out.println("在文件中才能看到>。。");
	}

	public static void main(String[] args) throws IOException {
		System.out.println("hello");
		File file=new File("F:"+File.separator+"hello.txt");
		try {
			System.setIn(new FileInputStream(file));
			byte[] b=new byte[1024];
			int len=0;
			len=System.in.read(b);
			System.out.println("文件中 的内容..."+new String(b,0,len));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 

13、合并流——将两个文件中的内容合并到另一个文件:

	public static void main(String[] args) throws IOException {
        File file1 = new File("F:" + File.separator + "hello.txt");
        File file2 = new File("F:" + File.separator + "hi.txt");
        File file3 = new File("F:" + File.separator + "ha.txt");
        InputStream input1 = new FileInputStream(file1);
        InputStream input2 = new FileInputStream(file2);
        OutputStream output = new FileOutputStream(file3);
        // 合并流
        SequenceInputStream sis = new SequenceInputStream(input1, input2);
        int temp = 0;
        while((temp = sis.read()) != -1){
            output.write(temp);
        }
        input1.close();
        input2.close();
        output.close();
        sis.close();
	}

 

14、文件压缩:

	public static void main(String[] args) throws IOException {
        File file1 = new File("F:" + File.separator + "hello.txt");
        File zipFile=new File("F:"+File.separator+"hello.zip");
        InputStream in=new FileInputStream(file1);
        ZipOutputStream zipOut=new ZipOutputStream(new FileOutputStream(zipFile));
        zipOut.putNextEntry(new ZipEntry(file1.getName()));//设置压缩文件中的名字。。。
        zipOut.setComment("-.-");
        int len=0;
        byte[] b=new byte[1024];
        while((len=in.read(b))!=-1){
        	zipOut.write(b,0,len);
        }
        in.close();
        zipOut.close();
	}

 

15、解压单个文件:

	public static void main(String[] args) throws IOException {
        File file = new File("F:" + File.separator + "hello.zip");
        File outFile = new File("F:" + File.separator + "unZipFile.txt");
        ZipFile zipFile = new ZipFile(file);
        ZipEntry entry = zipFile.getEntry("hello.txt");
        InputStream input = zipFile.getInputStream(entry);
        OutputStream output = new FileOutputStream(outFile);
        int temp = 0;
        while((temp = input.read()) != -1){
            output.write(temp);
        }
        input.close();
        output.close();
	}

 

16、解压多个文件:

        File file = new File("F:" + File.separator + "hello.zip");
        File outFile = null;
        ZipFile zipFile = new ZipFile(file);
        ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));
        ZipEntry entry = null;
        InputStream input = null;
        OutputStream output = null;
        while((entry = zipInput.getNextEntry()) != null){
            System.out.println("解压缩" + entry.getName() + "文件");
            outFile = new File("F:" + File.separator + entry.getName());
            if(!outFile.getParentFile().exists()){
                outFile.getParentFile().mkdir();
            }
            if(!outFile.exists()){
                outFile.createNewFile();
            }
            input = zipFile.getInputStream(entry);
            output = new FileOutputStream(outFile);
            int temp = 0;
            while((temp = input.read()) != -1){
                output.write(temp);
            }
            input.close();
            output.close();
        }

 

17、取得默认编码:

	public static void main(String[] args) throws IOException {
		System.out.println("系统默认编码为:" + System.getProperty("file.encoding"));
	}

 

 

分享到:
评论

相关推荐

    java——IO流技术.pdf

    ### Java IO流技术详解 #### 一、IO流概述 在Java编程中,**IO流**(Input/Output Stream)主要用于实现数据的输入与输出操作。无论是文件读写、网络通信还是程序间的交互,几乎所有的数据交换都依赖于IO流。 #####...

    java基础——IO流及File-RandomAccessFile对象.docx

    ### Java基础——IO流及File、RandomAccessFile对象 #### IO流概述 在Java中,IO流主要用于处理设备上的数据,这里的“流”可以被理解为数据的流动过程,即数据从一个地方移动到另一个地方的过程。Java中的IO流通过...

    JavaIO文件复制优化-JavaIO优化详解(下载可用)

    JavaIO文件复制优化——JavaIO优化详解(下载可用)。个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。...

    java 使用IO流实现文件的复制

    除了使用基本的字节流,Java还提供了更高级的`java.nio`包,它提供了一种更高效、更灵活的文件操作方式——NIO(New Input/Output)。NIO引入了通道(Channel)和缓冲区(Buffer)的概念,可以实现多线程间的零拷贝...

    java——1.rar_Java实习报告_java实习_java实习记录

    4. **IO流**:Java的IO流用于处理输入和输出,包括字符流和字节流,实习生可能需要编写读取文件、写入数据到文件的代码。 5. **多线程**:Java提供了丰富的多线程支持,通过Thread类或Runnable接口实现。实习生会...

    Thinking in Java——自己手写的代码

    "Thinking in Java——自己手写的代码"这个压缩包很可能是作者在阅读这本书的过程中,为了加深理解和实践,自己编写的代码实现。 在压缩包"Think in Java 4 code"中,我们可以预期找到与《Thinking in Java》第四版...

    java——面试题

    除了以上问题,Java面试还可能涉及其他主题,如异常处理、多线程、集合框架、IO流、反射、设计模式、垃圾回收机制、JVM内存模型、数据库连接、Spring框架等。掌握这些核心概念和技术对于成为一名优秀的Java开发者至...

    JAVA——文件处理(模仿windows界面)

    5. **目录操作**:Java的`java.io.File`类提供了对文件和目录的操作,如创建、删除、重命名、检查文件属性等。例如,`mkdir()`用于创建目录,`exists()`检查文件或目录是否存在。 6. **文本文件操作**:对于TXT文件...

    java——飞机大作战

    此外,理解异常处理、IO流、线程等也是必不可少的。 2. **Java Swing或JavaFX**:"飞机大作战"可能使用了Java的Swing库或者JavaFX库来创建用户界面,这两个库提供了丰富的组件和工具来构建图形用户界面,如窗口、...

    Java图书管理系统(IO流版)(csdn)————程序.pdf

    Java图书管理系统(IO流版)知识点总结 本文总结了Java图书管理系统(IO流版)的主要知识点,涵盖了Java基础语法、流程控制、面向对象思想、封装、继承、多态、接口、异常、集合、IO流等多方面的知识。 一、Java...

    北大的java——ppt课件.rar

    5. **IO/NIO/BIO**:对比并讲解Java传统的阻塞I/O(BIO)、非阻塞I/O(NIO)以及新添加的异步非阻塞I/O(AIO)模型。 6. **Java集合框架的高级用法**:如ConcurrentHashMap在多线程环境下的高效使用,以及队列和...

    java io 与java nio区别

    为此,Java 1.4 版本引入了新的I/O处理方式——NIO,即New IO。NIO提供了一种基于通道(Channel)和缓冲区(Buffer)的新模型。 - **通道(Channel)**:可以理解为数据的双向通道,支持数据的读取和写入。 - **缓冲...

    Java_IO(输入输出)

    以下是关于Java IO中的几个关键类——FileInputStream、FileOutputStream、FileReader和FileWriter,以及异常处理机制try{}catch{}finally{}的详细解释。 1. **FileInputStream** 类:这是Java中的字节输入流类,...

    java——让学员少走弯路

    Java的常用包,如java.lang、java.util和java.io,提供了大量的基础类和工具类。 "=="和"equals"是两个不同的概念:"=="比较的是对象的引用,而"equals"方法(默认行为也是比较引用,但可以通过重写改变其行为)...

    java——spider

    【Java——Spider】是一个关于使用Java编程语言实现网络爬虫(Spider)的示例程序,其主要目的是将一个网站的所有HTML文件抓取并保存到本地硬盘。网络爬虫是自动化浏览互联网并提取信息的一种工具,它能够遍历网页,...

    java基础——————试题库

    这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...

    Java —— jar读取自身图片和文本(.txt)文件(含源代码)

    import java.io.*; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; public class FileInJar { public static void main(String[] args) throws IOException { JarInputStream jarInput = ...

    JAVA_IO操作总结——节点流和处理流.pdf

    ### JAVA IO操作总结——节点流和处理流 #### 一、概述 在Java中,输入/输出(Input/Output,简称IO)操作是一项非常重要的功能,它涉及到如何从不同的源读取数据以及如何向不同的目的地写入数据。Java IO体系主要...

    Java_IO完全总结

    ### Java IO 完全总结 #### 一、历史背景 在计算机科学的发展历程中,输入输出(Input/Output,简称IO)系统的设计一直是极具挑战性的任务之一。正如《Thinking in Java》所言:“对语言设计人员来说,创建好的输入/...

    Java学习IO流小结--字符流

    ### Java学习IO流小结——字符流 #### 知识点概述 在Java中,处理文件和数据流是一项基本而重要的任务。IO流是Java语言中处理输入/输出的重要工具,它包括字节流和字符流两大类。本文将重点讨论字符流的相关概念...

Global site tag (gtag.js) - Google Analytics