一、使用字符流,读取和存储纯文本文件。
存储文件,也就是像一个文件里写内容,既然是写,那就需要使用输出流。而且我们写的是纯文本文件,所以这里使用字符流来操作,java api提供给我们FileWriter这么一个类,我们来试试:(读取文件同理使用FileReader类)
- packageorg.example.io;
- importjava.io.File;
- importjava.io.FileNotFoundException;
- importjava.io.FileReader;
- importjava.io.FileWriter;
- importjava.io.IOException;
- publicclassTestFileWriter{
- publicstaticvoidmain(String[]args)throwsException{
- writeToFile();
- readFromFile();
- }
- /**
- *DOC从文件里读取数据.
- *
- *@throwsFileNotFoundException
- *@throwsIOException
- */
- privatestaticvoidreadFromFile()throwsFileNotFoundException,IOException{
- Filefile=newFile("E:\\helloworld.txt");//指定要读取的文件
- FileReaderreader=newFileReader(file);//获取该文件的输入流
- char[]bb=newchar[1024];//用来保存每次读取到的字符
- Stringstr="";//用来将每次读取到的字符拼接,当然使用StringBuffer类更好
- intn;//每次读取到的字符长度
- while((n=reader.read(bb))!=-1){
- str+=newString(bb,0,n);
- }
- reader.close();//关闭输入流,释放连接
- System.out.println(str);
- }
- /**
- *DOC往文件里写入数据.
- *
- *@throwsIOException
- */
- privatestaticvoidwriteToFile()throwsIOException{
- StringwriterContent="helloworld,你好世界";//要写入的文本
- Filefile=newFile("E:\\helloworld.txt");//要写入的文本文件
- if(!file.exists()){//如果文件不存在,则创建该文件
- file.createNewFile();
- }
- FileWriterwriter=newFileWriter(file);//获取该文件的输出流
- writer.write(writerContent);//写内容
- writer.flush();//清空缓冲区,立即将输出流里的内容写到文件里
- writer.close();//关闭输出流,施放资源
- }
- }
测试结果:
hello world,你好世界
二、使用字节流,读取和存储图片
首先使用输入流读取图片信息,然后通过输出流写入图片信息:
- packageorg.example.io;
- importjava.io.File;
- importjava.io.FileInputStream;
- importjava.io.FileOutputStream;
- publicclassTestIOStream{
- /**
- *
- *DOC将F盘下的test.jpg文件,读取后,再存到E盘下面.
- *
- *@paramargs
- *@throwsException
- */
- publicstaticvoidmain(String[]args)throwsException{
- FileInputStreamin=newFileInputStream(newFile("F:\\test.jpg"));//指定要读取的图片
- Filefile=newFile("E:\\test.jpg");
- if(!file.exists()){//如果文件不存在,则创建该文件
- file.createNewFile();
- }
- FileOutputStreamout=newFileOutputStream(newFile("E:\\test.jpg"));//指定要写入的图片
- intn=0;//每次读取的字节长度
- byte[]bb=newbyte[1024];//存储每次读取的内容
- while((n=in.read(bb))!=-1){
- out.write(bb,0,n);//将读取的内容,写入到输出流当中
- }
- out.close();//关闭输入输出流
- in.close();
- }
- }