0
点赞
收藏
分享

微信扫一扫

java的基础io流

草原小黄河 2022-04-19 阅读 40
java
public class Dome {
	public static void main(String[] args) throws FileNotFoundException, IOException {


		//字节流 是对字母进行操作 字符流 可以对汉字进行操作
		//字节流有两个抽象类 InputStream FileOutputStream 他们分别都有一个子类
		//FileInputStream(输入流)
		//FileOutputStream(输出流)
		
		//实现遍历文件
		//创建文件对象
		File file = new File("D:\\abc\\aaa.txt");//接收一个字符串类型的文件地址
		FileInputStream a = new FileInputStream(file);//与文件对象产生关联
		int num = -1;//在FileInputStream 的read(读取文件内容)方法中 没有内容就会返回-1 
					//这里的num是在为遍历文件内容做准备
		while ((num = a.read()) != -1) {
			System.out.print((char) num);//因为我读取的字节最底层是一个数字 
										//所以需要一个强制类型转换 将他转换成我们所需要的内容
		}
		//输出结果为文件内容 abcd
	
		//对文件aaa进行输入
		//创建文件对象
		File file1 = new File("D:\\abc\\aaa.txt");
		//创建输出流 并与文件对象产生关联 这里的true是因为在输出流对对文件进行数据存储的时候
		//每次都会进行覆盖 即重写编写一个文件覆盖原本文件(没有文件系统会自动生成文件) 如果我们
		//不想对原文件进行修改 就需要在new的时候给参数true(默认为false)
		FileOutputStream b = new FileOutputStream(file1,true);
		String aaaa = "aaaa";
		byte[] bytes = aaaa.getBytes();//使用字符串的方法对字符串aaaa进行转换 从而可以进行数据的存储
		b.write(bytes);
		System.out.println("ok");
		//最后结果abcdaaaa
		
		//对文件进行复制
		//创建两个文件对象
		File filea = new File("D:\\abc\\aaa.txt");//原文件
		File fileb = new File("D:\\abc\\abc.txt");//复制文件(不存在)
		
		//准备输入流与输出流 并于文件产生关联
		FileInputStream a1 = new FileInputStream(filea);//输入流
		FileOutputStream b1 = new FileOutputStream(fileb,true);//输出流
		int abc = -1;//准备返回值
		while((abc = a1.read()) != -1){
			b1.write(abc);//代码在遍历文件的同时进行对文件abc的存储
			b1.flush();//flush方法代表手动释放缓存区的数据 应每存储一点释放一点 
                        //使用close也能释放缓存区的数据 但会结束流 就不能对文件进行操作了
		}
		
		
		a1.close();
		b1.close();//关闭流 应遵循先开后管原则
		//结果为创建了文件abc.txt 文件内容为与文件aaa.txt相同
		









}
举报

相关推荐

# Java基础——IO流

Java基础_IO流

JAVA基础IO流

Java--IO流.基础

java基础之IO流

0 条评论