Java里面最简单好用的文件输入输出方法

本文介绍了Java中使用FileWriter和FileReader进行文件读写的简便方法。通过实例演示了如何创建文件、写入数据及读取文件内容。适用于Java初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java里面关于文件输入输出的方法差不多有这三种:FileWrite,FileReader> ;<FileOutputStream,FileInputStream>;<OutputStreamWrite,InputStreamReader>。但个人觉得最简单的方法当属第一种。对于初学者来说,输入输出流的嵌套,转换最让人头疼。一会in,一会又out的,很麻烦。而使用FileWrite,FileReader> 可以避免这种混乱,从文件里面读数据就用FileReader里面的read方法,往文件里面写数据就用FileWriter里面的write方法。废话少说,直接上码!(虽然有码无码在有些人的眼里都是浮云.....)

因为简单,所以几行代码更容易解释清楚。(大部分的代码都是捕获异常的自动生成的代码。)

        File file1 = new File("/home/a123/a"); // 这种路径名格式是在Unix下面的路径格式,在Windows下面的路径格式类似" C:\\test\\  "这样,注意区别
		if (file1.exists()) {
			System.out.println("存在文件夹a");
		} else {
			file1.mkdir(); // 文件夹的创建 创建文件夹/home/a123/a
		}
		File file2 = new File("/home/a123/a/test");
		if (file2.exists()) {
			System.out.println("存在文件夹或者文件test");
		} else {
			try {
				file2.createNewFile(); // 文件的创建,注意与文件夹创建的区别
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

		/**
		 * 最简单的文件读写方法是使用类FileWriter
		 * (它的父类依次是java.io.OutputStreamWriter——>java.io.Writer——>java.lang.Object );
		 */

		// 下面是向文件file2里面写数据
		try {
			FileWriter fileWriter = new FileWriter(file2);
			String s = new String("This is a test!  \n" + "aaaa");
			fileWriter.write(s);
			fileWriter.close(); // 关闭数据流
			

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		/*
		 * 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。
		 * 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可:
		 * FileWriter fileWriter=new FileWriter(file2,true);
		 */

		// 下面是从文件file2读东西
		try {
			FileReader fileReader = new FileReader(file2);
			String s = null;
			char ch;
			try {
				char[] c = new char[100];
				fileReader.read(c,0,2); // 具体想得到文件里面的什么值(单个char?int?还是String?),
				System.out.println(c);
				fileReader.close();

			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		/**
		 * 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法:
		 *  1. int read()       读取单个字符。      
		 *  2. int read(char[] cbuf) 将字符读入数组。    可以再将字符型数组转化位字符串    
		 *  3.  int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。
		 * 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1.
		 */

	}

              *****转载请注明远处出和作者:http://blog.youkuaiyun.com/xtj332*********************


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值