`
java-mans
  • 浏览: 11420133 次
文章分类
社区版块
存档分类
最新评论

Java中的IO处理

 
阅读更多

创建文件夹:file.mkdir()

CreatDirectoryDemo.java

package com.tianjf;

import java.io.File;

public class CreatDirectoryDemo {
	public static void main(String[] args) {
		String directoryName = "D:" + File.separator + "hello";
		File file = new File(directoryName);
		file.mkdir();
	}
}

创建文件:file.createNewFile()

CreatFileDemo.java

package com.tianjf;

import java.io.File;
import java.io.IOException;

public class CreatFileDemo {
	public static void main(String[] args) {
		String fileName = "D:" + File.separator + "hello.txt";
		File file = new File(fileName);
		try {
			file.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

判断指定路径是文件夹还是文件:file.isDirectory() /file.isFile()

IsDirectoryOrFileDemo.java

package com.tianjf;

import java.io.File;

public class IsDirectoryOrFileDemo {
	public static void main(String[] args) {
		String directoryName = "D:" + File.separator + "hello";
		File file = new File(directoryName);
		if (file.isDirectory()) {
			System.out.println("是一个文件夹!");
		} else {
			System.out.println("不是一个文件夹!");
		}
		
		String fileName = "D:" + File.separator + "hello.txt";
		file = new File(fileName);
		if (file.isFile()) {
			System.out.println("是一个文件!");
		} else {
			System.out.println("不是一个文件!");
		}
	}
}

删除文件:file.delete()

DeleteFileDemo.java

package com.tianjf;

import java.io.File;

public class DeleteFileDemo {
	public static void main(String[] args) {
		String fileName = "D:" + File.separator + "hello.txt";
		File file = new File(fileName);
		if (file.exists()) {
			file.delete();
		} else {
			System.out.println("文件不存在");
		}
	}
}

列出所有文件夹名和所有文件名:file.list() / 列出所有文件夹路径和所有文件路径:file.listFiles()

ListFilesDemo.java

package com.tianjf;

import java.io.File;

public class ListFilesDemo {
	public static void main(String[] args) {
		String directoryName = "D:" + File.separator;
		File file = new File(directoryName);
		
		// 列出所有文件夹名和所有文件名
		String[] arrStr = file.list();
		for (int i = 0; i < arrStr.length; i++) {
			System.out.println(arrStr[i]);
		}
		
		// 列出所有文件夹路径和所有文件路径
		System.out.println("---------------------------------------");
        File[] arrFile = file.listFiles();
		for (int i = 0; i < arrFile.length; i++) {
			System.out.println(arrFile[i]);
		}

        // 列出所有文件夹路径和所有文件路径
      System.out.println("---------------------------------------");
      File[] arrFileWithFilter = file.listFiles(new FilenameFilter() {// 内部类
       @Override
       public boolean accept(File f1, String name) {
         return name.endsWith(".txt");
       }
     });
      for (int i = 0; i < arrFileWithFilter.length; i++) {
       System.out.println(arrFileWithFilter[i]);
      }
    }
}

写入字节流:FileOutputStream

FileOutputStreamDemo.java

package com.tianjf;

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

public class FileOutputStreamDemo {
	public static void main(String[] args) throws IOException {
		/* 将一个字符串作为一个整体写入文件 */
		String fileName01 = "D:" + File.separator + "hello01.txt";
		File file01 = new File(fileName01);
		String str01 = "你好";
		byte[] bytes01 = str01.getBytes();
		OutputStream out01 = new FileOutputStream(file01);
		out01.write(bytes01);
        // 刷新缓存,写文件,最好加上这样的一句话
      out01.flush();
        out01.close();

		/* 将一个字符串一个字节一个字节的写入文件 */
		String fileName02 = "D:" + File.separator + "hello02.txt";
		File file02 = new File(fileName02);
		String str02 = "你好";
		byte[] bytes02 = str02.getBytes();
		OutputStream out02 = new FileOutputStream(file02);
		for (int i = 0; i < bytes02.length; i++) {
			out02.write(bytes02[i]);
		}
      out02.flush();
       out02.close();
		
		/* 追加新内容到文件中 */
		String str03 = "追加的内容";
		byte[] bytes03 = str03.getBytes();
		OutputStream out03 = new FileOutputStream(file02, true);
		for (int i = 0; i < bytes03.length; i++) {
			out03.write(bytes03[i]);
		}
		out03.flush();
        out03.close();
	}
}

读入字节流:FileInputStream

FileInputStreamDemo.java

package com.tianjf;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class FileInputStreamDemo {
	public static void main(String[] args) throws IOException {
		/** 知道文件大小的读取 */
		/* 整个读取 */
		String fileName = "D:" + File.separator + "hello01.txt";
		File file = new File(fileName);
		InputStream in = new FileInputStream(file);
		byte[] bytes = new byte[(int) file.length()];
		in.read(bytes);
		in.close();
		System.out.println(new String(bytes));

		/* 一个字节一个字节读取 */
		in = new FileInputStream(file);
		bytes = new byte[(int) file.length()];
		for (int i = 0; i < bytes.length; i++) {
			bytes[i] = (byte) in.read();
		}
		in.close();
		System.out.println(new String(bytes));

		/** 不知道文件大小的读取,需要判断是否读到了结尾 */
		/* 每次读取1KB */
		in = new FileInputStream(file);
		bytes = new byte[1024];
		while (true) {
			// 读取1KB的内容到数组中
			int num = in.read(bytes);
			// 返回-1则表示读到了结尾
			if (num == -1) {
				break;
			}
			// 将字节数组转换为字符串(index = 0, length = num)
			String str = new String(bytes, 0, num);
			System.out.println(str);
		}
		in.close();

		/* 一个字节一个字节的读取 */
		in = new FileInputStream(file);
		bytes = new byte[1024];
		int count = 0;
		int tempByte = 0;
		while ((tempByte = in.read()) != -1) {
			bytes[count++] = (byte) tempByte;
		}
		in.close();
		System.out.println(new String(bytes));
	}
}

写入字符流:FileWriter

FileWriterDemo.java

package com.tianjf;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class FileWriterDemo {
	public static void main(String[] args) throws IOException {
		String fileName = "D:" + File.separator + "hello.txt";
		File file = new File(fileName);
		String str = "hello";
		Writer out = new FileWriter(file);
		out.write(str);
		out.flush();
        out.close();

		/* 追加新内容到文件中 */
		out = new FileWriter(file, true);
		out.write("\r\n" + str);
		out.flush();
        out.close();
	}
}

读入字符流:FileReader

FileReaderDemo.java

package com.tianjf;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class FileReaderDemo {
	public static void main(String[] args) throws IOException {
		String fileName = "D:" + File.separator + "hello.txt";
		File file = new File(fileName);
		char[] chars = new char[100];
		Reader in = new FileReader(file);
		int count = in.read(chars);
		in.close();
		System.out.println("读入的长度为:" + count);
		System.out.println("内容为:" + new String(chars, 0, count));

		/* 依次读取,需要判断是否读到了结尾 */
		chars = new char[100];
		in = new FileReader(file);
		int tempChar = 0;
		count = 0;
		while ((tempChar = in.read()) != -1) {
			chars[count++] = (char) tempChar;
		}
		in.close();
		System.out.println("内容为:" + new String(chars, 0, count));
	}
}

使用字节流好还是字符流好?

答案是字节流。首先因为硬盘上的所有文件都是以字节的形式进行传输或者保存的,包括图片等内容。但是字符只是在内存中才会形成的,所以在开发中,字节流使用广泛。


缓冲区:BufferdReader

BufferdReaderDemo.java

package com.tianjf;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class BufferdReaderDemo {
	public static void main(String[] args) throws IOException {
		BufferedReader br = null;
		BufferedWriter bw = null;
		bw = new BufferedWriter(new FileWriter("D:" + File.separator + "hello.txt"));
		br = new BufferedReader(new FileReader("D:" + File.separator + "hello.txt"));
		String s = null;
		for (int i = 1; i <= 100; i++) {
			s = String.valueOf(Math.random());
			bw.write(s);
			// 写入一个行分隔符
			bw.newLine();
		}
		bw.flush();
		while ((s = br.readLine()) != null) {// BufferdReader方便的方法readLine()读一行
			System.out.println(s);
		}
		bw.close();
		br.close();
	}
}

使用Scanner类从文件中读出内容

ScannerDemo.java

package com.tianjf;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerDemo {
	public static void main(String[] args) throws FileNotFoundException {
		File file = new File("d:" + File.separator + "hello.txt");
		Scanner scanner = new Scanner(file);
		while (scanner.hasNext())
		{
			System.out.println(scanner.next());
		}
	}
}


分享到:
评论

相关推荐

    java io处理 方法

    java io处理 方法java io处理 方法

    java_io流的处理

    本文档能够帮助你了解java io流的处理

    java零基础自学 之 JavaIO流处理

    java零基础自学 之 JavaIO流处理java零基础自学 之 JavaIO流处理

    JAVA IO 输入输出处理.ppt

    JAVA IO 输入输出处理.ppt JAVA IO 输入输出处理.ppt JAVA IO 输入输出处理.ppt

    java_IO流的处理.ppt

    java_IO流的处理.ppt java_IO流的处理.ppt

    Java中文件IO流.pdf

    Java中文件IO流.pdf 学习资料 复习资料 教学资源

    Java IO处理类的汇总

    Java IO处理类的汇总 总结了JavaIO处理类的代码集

    java.io.CharConversionException: isHexDigit处理

    java.io.CharConversionException: isHexDigit.最近项目运行出现了这个问题,刚开始就知道是编码问题,怎么改编码都不正确,在网上搜到的文章。

    彻底明白java中的IO流

    Java的核心库java.io提供了全面的IO接口,包括:文件读写,标准设备输出等等。Java中IO是以流为基础进行输入输出的,...在具体使用中很多初学者对Java.io包的使用非常含糊,本文将详细解说关于Java.io的使用…………

    Java IO学习文件处理

    import java.io.*; import java.util.*; public class FileFormatChange { /** * 1、创建输入(输出)流对象 * 2、读(写)数据 * 3、关闭输入输出流 */ public static void main(String[] args) { // ...

    java.io包讲解

    专业的课程讲解 所有的程序都离不开信息的输入和输出。例如,从键盘读取数据、在网络上交换数据、打印报表、读写文件信息等,都要涉及数据输入输出的处理。...在Java中,处理数据流的类主要被放在java.io包中 。

    Java的例外处理和IO流

    Java的例外处理和IO流Java的例外处理和IO流Java的例外处理和IO流Java的例外处理和IO流Java的例外处理和IO流

    第4章 Java的IO流和异常处理.ppt

    第4章 Java的IO流和异常处理.ppt

    javaIO流原代码

    javaIO流原代码,刚刚开始学习java的同志们可以看看.有问题留言.

    JavaIO.ppt

    Java 的 IO 流主要包括输入、输出两种 IO 流,每种输入、输出流有可分为字节流和字符流两大类: 字节流以字节为单位来处理输入、输出操作 字符流以字符为单位来处理输入、输出操作

    JAVA IO流技术

    4. Java中流的概念细分 流的方向: 输入流:数据源到程序(InputStream、Reader读进来) 输出流:程序到目的地(OutPutStream、Writer写出去) 处理数据单元: 字节流:按照字节读取数据(InputStream、OutputStream)...

    Java的异常处理和IO流

    Java的异常处理和IO流

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

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

    Java基础篇:IO流.pdf

    该文档主要整理了Java IO流的相关信息,主要包括IO流的按照不同维度的分类、节点流、处理流、输入输出流的处理过程、抽象基类的使用等细节内容

Global site tag (gtag.js) - Google Analytics