文件流操作

来源:互联网 发布:淘宝手机卡禁售 编辑:程序博客网 时间:2024/06/06 07:13
<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();;;;}}/* *字符文件字节文件 文件对象FileFile 流对象的读对象FileReaderInputStream 流对象的写对象FileWriterOutputStream 流对象的读对象的缓冲对象BufferedReaderBufferedInputStream 流对象的写对象的缓冲对象BufferedWriterBufferedOutputStream 将字节流对象转换成字符流对象的桥梁就是InputStreamReader,举例:键盘输入就是字节流对象,转换成字符流来操作(比如键盘输入了什么字符了?输入了什么数字了?)InputStreamReader insr = new InputStreamReader(System.in);转换后操作insr就相当于操作FileReader的流程了。同理将字符流对象转换成字节流对象的就是OutputStreamWriter。归根到底计算机其实只认识字节,不认识字符。各种对字符文件的操作在最底层还是按照字节文件处理的。*/


                                             
0 0
原创粉丝点击