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

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.csdn.net/xtj332*********************


你可能感兴趣的:(java历程)