文件流操作

<pre name="code" class="java">/*


*/

import java.io.*;


class MainClass 
{
	public static void main(String[] args) throws Exception
	{


		System.out.println("输入一个1到9的数字和重复次数,用空白符分隔:");

		//具体prime.dat文件存放的路径,假设prime.dat是一个字符文件,就是用记事本打开不是一片乱码的那种。
		//一片乱码的就是字节文件了。
		
		//一定要确保prime.dat的路径都是真实存在的,否则运行时会挂掉,因为找不到路径。
		String filepath = "d:\\myjava\\javatest\\prime.dat";

		//创建文件对象,具体是读啊还是写啊先不管
		File file = new File(filepath);

		//如果已经存在则不创建,也不会改变内容;如果不存在则创建空白内容的文件。
		//如果就是要读文件的话,必须先要判断文件存在与否:file.exists()。文件都没有还操作个啥。 
		//这里要用写,所以存不存在无所谓。
		file.createNewFile();

		//创建字符流的写对象, true表示在文件末尾追加,false表示先清空文件内容然后追加。
		FileWriter filewriter = new FileWriter(file, false);

		//创建一个字符数组,用来存放要写进prime.dat的内容,1024是该数组的长度。
//		char[] chararr = new char[1024];
		//也可以用字符串对象str来存放要写进prime.dat的内容。写之前要确保str不是null。
		String str = null;
		//创建写对象的缓冲对象,这一步可用可不用.缓冲吗就是用来优化的,不优化也是可以达到目的的。
		BufferedWriter bufw = new BufferedWriter(filewriter);
		//下面就开始写内容了,可以一次写完也可以用循环来写。用循环举例。
		
		for(int i = 0; i <10 ; i++)//for里面的条件自己写,这里是为了编译通过乱写的)
		{
			//往chararr或者str里面放内容,具体放什么代码省略。
			str = new String("Test");
			//代表将chararr数组中从0脚标开始到数组长度脚标为止的内容写到文件中,自己指定写哪部分。
			//bufw.write(chararr, 0, chararr.length);
			bufw.write(str);
			//用不用优化都一定要flush(),只有flush了才会真正写进文件里面。
			bufw.flush();
			//filewriter.write(chararr, 0, str.length);
			//filewriter.write(str);
			//filewriter.flush();
		}

		//文件写完了一定要close()
		bufw.close();
		//filewriter.close();

		;

		;

		;
	
	}
}


/*
 *
								字符文件		字节文件
 文件对象						File			File
 流对象的读对象					FileReader		InputStream
 流对象的写对象					FileWriter		OutputStream
 流对象的读对象的缓冲对象		BufferedReader	BufferedInputStream
 流对象的写对象的缓冲对象		BufferedWriter	BufferedOutputStream
 
将字节流对象转换成字符流对象的桥梁就是InputStreamReader,举例:键盘输入就是字节流对象,转换成字符流来操作(比如
键盘输入了什么字符了?输入了什么数字了?)
InputStreamReader insr = new InputStreamReader(System.in);
转换后操作insr就相当于操作FileReader的流程了。

同理将字符流对象转换成字节流对象的就是OutputStreamWriter。

归根到底计算机其实只认识字节,不认识字符。各种对字符文件的操作在最底层还是按照字节文件处理的。

*/





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值