Java IO中的FileReader 和 FileWriter读写文件,和创建多级文件夹
package pack.java.io;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import sun.misc.Resource;public class CreateFileDemo {/** * 测试主方法; * @param args */public static void main(String[] args) {//System.getProperty("user.dir")是取得当前项目的根目录;然后,在拼出文件所在的目录;String file=System.getProperty("user.dir")+"\\src"+File.separator+"\\myFile.txt";File writeFile=new File("C:\\iodemo\\File\\");System.out.println("获得父级目录:"+writeFile.getParent());//如果目录不存在,则创建目录;if(!writeFile.exists()){//mkdirs是创建多级目录,而mkdir是创建单级目录;writeFile.mkdirs();}FileReader fileReader = null;FileWriter fileWrite = null;try {//fileInputStream=new FileInputStream(file);//fileOutputStream = new FileOutputStream(new File(writeFile.getPath()+"\\writeFile.txt"));fileReader = new FileReader(file);int c=0;try {fileWrite = new FileWriter(writeFile.getPath()+"\\writeFile.txt");while ((c=fileReader.read())!=-1) {//输出到C:\\iodemo\\File\\test目录下的writeFile.txt文件中;fileWrite.write(c);}System.out.println("成功输出文件到:"+writeFile.getPath());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {//以下操作是:关闭输入流和输出流;if(fileReader!=null){fileReader.close();}if(fileWrite!=null){fileWrite.close();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}?
?
?FileInputStream 类
1 ) FileInputStream 类介绍:
以字节为单位的流处理。字节序列:二进制数据。与编码无关,不存在乱码问题。
FileInputStream 类的主要方法有:
Read(), read(byte[] b), read (byte[],int off,int len) ,available();
2 ) FileInputStream 类与 FileReader 类的区别:
两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢?
FileInputStream :以字节流方式读取;
FileReader :把文件转换为字符流读入;
InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。
Reader类及其子类提供的字符流的读取char,inputStream及其子类提供字节流的读取byte,所以FileReader类是将文件按字符流的方式读取,FileInputStream则按字节流的方式读取文件;