I/O流

分类:
1.字节流和字符流
2.输入流和输出流
3.节点流和处理流

  • 字节流读写文件
import java.io.FileInputStream;

public class import1 {
	public static void main(String[]args) throws Exception{
		//创建一个文件字节输入流来读取文件
		FileInputStream in = new FileInputStream("test.txt");
		//定义一个int类型的变量b
		int b=0;
		//通过循环来读取文件,当返回值为-1时,结束循环
		while((b=in.read())!=-1) {
			System.out.println(b);
		}
		//关闭流
		in.close();
	}
}
  • 写入文件
import java.io.FileOutputStream;

public class output1 {
	public static void main(String[]args) throws Exception{
		//创建文件输出流对象,并指定输出文件名称
		FileOutputStream out = new FileOutputStream("out.txt");
		//定义一个字符串
		String str = "Hello";
		//将字符串转换为字节数组进行写入操作
		out.write(str.getBytes());
		//关闭流
		out.close();
	}
}

import java.io.FileOutputStream;

public class output2 {
	public  static void main(String[]args) throws Exception{
		//创建输出流对象,并指定输出的文件名称
		FileOutputStream out = new FileOutputStream("out.text",true);
		String str = "Wolrld\r";
		out.write(str.getBytes());
		/*finally {
			try {
				if(out!=null)
					out.close();
			}catch(Exception e) {
				e.printStackTrace();
			}
		}
	*/
	}
}

import java.io.FileReader;

public class zifuliu1 {
	public static void main(String[]args) throws Exception{
		//创建FileReader对象,并指定需要读取的文件
		FileReader fileReader = new FileReader("reader.txt");
		
		int len = 0;
		//通过循环来判断是否读取到来文件末尾
		while((len = fileReader.read())!=-1) {
			//读出取到的字符
			System.out.print((char)len);
		}
		fileReader.close();
	}
}

import java.io.FileWriter;

public class ziduliu2 {
	public static void main(String[]args) throws  Exception{
		//创建字符输出流对象,并指定输出文件
		FileWriter fileWriter = new FileWriter("writer.txt");
		//将定义的字符写入文件
		fileWriter.write("轻轻的我走了,\n");
		fileWriter.write("正如我轻轻的来,\r\n");
		fileWriter.write("我轻轻的招手,\r");
		fileWriter.write("作别西天的云彩,\r\n");
		//关闭流
		fileWriter.close();
	}
}

import java.io.FileReader;
import java.io.FileWriter;

//使用字符流的缓冲区实现文件的拷贝
public class zifuliu3 {
	public static void main(String[]args) throws Exception{
		//创建FileReader对象,并指定需要读取的文件
		FileReader fileReader = new FileReader("reader.txt");
		//创建FileRWriter对象,并指定需要写入的文件
		FileWriter fileWriter = new FileWriter("writer.txt");
		int len = 0;
		//定义一个长度为1024的字符数组
		char[] buff = new char[1024];
		while((len=fileReader.read(buff))!=-1) {
			//输出读取的字符
			fileWriter.write(buff,0,len);
		}
		fileReader.close();
		fileWriter.close();
		
	}
}

import java.io.*;

//用BufferedRead中的readLine()方法,用于一次读取一行文本‘

public class zifuliu4 {
	public static void main(String[]args) throws Exception{
		//创建一个字符输入流缓冲对象
		BufferedReader br = new BufferedReader(new FileReader("reader.txt"));
		//创建一个字符输出流缓冲对象
		BufferedWriter bw = new BufferedWriter(new FileWriter("writer.txt"));
		String str = null;
		//循环时每次读取一行文本,如果不为null(即到了文件末尾),则继续循环
		while((str = br.readLine())!=null) {
			//通过缓冲流对象写入文件
			bw.write(str);
			bw.newLine();
		}
		br.close();
		bw.close();
	}
}

import java.io.*;

public class zijiehuanchongliu {
	public static void main(String[]sgrs) throws Exception{
		//创建用于输入和输出的字节缓冲流对象
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("source/src.jpg") );
		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("target/src.jpg"));
		//定义一个int类型的变量len
		int len = 0;
		//获取拷贝文件前的系统时间
		long beginTime = System.currentTimeMillis();
		//通过循环读取输入字节缓冲流中的数据,并通过输出字节缓冲流写入到新文件
		while((len = bis.read())!=-1) {
					bos.write(len);
				}
		//获取拷贝文件后的系统时间
		long endTime = System.currentTimeMillis();
		//输出拷贝花费时间
		System.out.println("花费时间为:"+(endTime-beginTime)+"毫秒");//花费时间为:38毫秒
		//关闭流
		bis.close();
		bos.close();
	}
}

import java.io.*;

public class zhuanhuanliu {
	public static void main(String[]args) throws Exception{
		//1.创建字节输入流对象,获取源文件
		FileInputStream in = new FileInputStream("reader.txt");
		//将字节输入流对象转换成字符输入流对象
		InputStreamReader isr = new InputStreamReader(in);
		//创建字符输出流对象
		BufferedReader br = new BufferedReader(isr);
		//2.创建字节输出流对象,指定目标文件
		FileOutputStream out = new FileOutputStream("writer.txt");
		//将字节输出流对象转换成字符输出流对象
		OutputStreamWriter osw = new OutputStreamWriter(out);
		//创建字符输出缓冲流对象
		BufferedWriter bw = new BufferedWriter(osw);
		//定义一个字符串对象
		String line = null;
		//通过循环判断换是否读到文件末尾
		while((line = br.readLine())!=null) {
			//输出读取到的文件
			bw.write(line);
			bw.newLine();
		}
		//关闭流
		br.close();
		bw.close();
	}
}

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class copy {
	public static void main(String[]args) throws Exception{
		//创建文件输入流对象读取指定目录下的文件
		FileInputStream in = new FileInputStream("source/src.jpg");
		//创建文件输出流对象将读取到的文件内容写入到指定目录的文件中
		FileOutputStream out = new FileOutputStream("target/dest.jpg");
		//定义一个int类型的变量len
		int len = 0;
		//定义一个长度为1024的字节数组
		byte[] buff = new byte[1024];
		//获取拷贝文件前的系统时间
		long beginTime = System.currentTimeMillis();
		//通过循环将读取到的文件字节信息写入到新文件
		while((len = in.read(buff))!=-1) {
			out.write(buff,0,len);
		}
		//获取拷贝文件后的系统时间
		long endTime = System.currentTimeMillis();
		//输出拷贝花费时间
		System.out.println("花费时间为:"+(endTime-beginTime)+"毫秒");//花费时间为:28毫秒
		//关闭流
		in.close();
		out.close();
	}
}

import java.io.File;
//查看文件的相关信息
public class File1 {
	public static void main(String[]args) {
		//创建File文件对象
		File file = new File("example.txt");
		System.out.println("文件名称:"+file.getName());
		System.out.println("文件的相对路径:"+file.getPath());
		System.out.println("文件的绝对路径:"+file.getAbsolutePath());
		System.out.println("文件的父路径:"+file.getParent());
		System.out.println(file.canRead()?"文件可读":"文件不可读");
		System.out.println(file.canWrite()?"文件可写":"文件不可写");
		System.out.println(file.isFile()?"是一个文件":"不是一个文件");
		System.out.println(file.isDirectory()?"是一个目录":"不是一个目录");
		System.out.println(file.isAbsolute()?"是绝对路径":"不是绝对路径");
		System.out.println("最后的修改时间为:"+file.lastModified());
		System.out.println("文件大小为:"+file.length());
		System.out.println("是否成功删除文件?"+file.delete());	
	}
}

/*
 文件名称:example.txt
文件的相对路径:example.txt
文件的绝对路径:/Users/a/Desktop/Java/Example/example.txt
文件的父路径:null
文件可读
文件可写
是一个文件
不是一个目录
不是绝对路径
最后的修改时间为:1557913240802
文件大小为:4
是否成功删除文件?true
*/

//遍历目录下的文件

import java.io.File;
import java.util.Arrays;

public class File2 {
	public static void main(String[]args) {
		//创建File对象,并指定文件路径
		File file = new File("/Users/a/Desktop/Java/Example/source");
		//判断是否是目录
		if(file.isDirectory()) {
			//获取目录中的所有文件的名称
			String[] fileNames = file.list();
			//对指定路径下的文件或目录进行遍历
			Arrays.stream(fileNames).forEach(f->System.out.println(f));
		}
	}
}
/*
.DS_Store
src.JPG
*/

import java.io.File;
import java.util.Arrays;

//如何筛选遍历指定目录下所有拓展名为”.txt“的文件
public class File3 {
	public static void main(String[]args) {
		//创建file对象并指定文件路径
		File file = new File("/Users/a/Desktop/Java/Example");
		//判断是否为目录
		if(file.isDirectory()) {
			//使用Lamda表达式过滤目录中所有以“.txt”结尾的文件的名称
			String[] fileNames =file.list((dir,name)->name.endsWith(".txt"));
			//对指定路径下的文件或目录进行遍历
			Arrays.stream(fileNames).forEach(f->System.out.println(f));
		}
	}
}
/*
out.txt
reader.txt
writer.txt
time.txt
test.txt
*/
import java.io.File;

//有子目录需要遍历,使用递归

public class File4 {
	public static void main(String[]args) {
		//创建file对象并指定文件路径
		File file = new File("/Users/a/Desktop/Java/Example");
		//调用fileDir()方法,遍历目录
		fileDir(file);
	}

	private static void fileDir(File file) {
		//获得目录下的全部文件并赋给数组
		File[] listFiles = file.listFiles();
		//循环遍历数组
		for(File files:listFiles) {
			//如果遍历的是目录,则递归调用fileDir()方法
			if(files.isDirectory()) {
				fileDir(file);
			}
			//输出文件路径
			System.out.println(files);
		}
	}
}
/*
/Users/a/Desktop/Java/Example/.DS_Store
/Users/a/Desktop/Java/Example/reader.txt
/Users/a/Desktop/Java/Example/out.tx
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值