可爱的静静 发表于 2017-8-27 02:52:55

java笔记 -IO

文件的操作:

File类 :可以是文件 也可以是文件夹
常用方法:
                1、boolean createNewFile():真正的创建文件
                2、boolean mkdir():真正的创建文件夹
                3、boolean delete():删除文件或文件夹
                4、String getName():获得文件或文件夹的名字
                5、String getPath():获得文件或文件夹的路径及名字
                6、boolean isFile():判断是否为文件,是返回true,不是返回false
                7、boolean isDirectory():判断是否为文件夹,是返回true,不是返回false
                8、File[] listFiles():获得文件夹下的所有文件及文件夹
9. boolean exists()
          测试此抽象路径名表示的文件或目录是否存在。
10. isDirectory()
          测试此抽象路径名表示的文件是否是一个目录。
11. isHidden()
          测试此抽象路径名指定的文件是否是一个隐藏文件。
New一个file格式
File 引用名=new File(参数);//写想要创建文件所存放的地址但不是正真的创建文件
真正的创建文件是 mikdir();只是封装为File对象

例子:
public static void main(String[] args) throws IOException {

                        File input=new File("D:\\a.txt");
                        File in=new File("D:\\a");//如果文件不存在就新建
                        System.out.println(input.createNewFile());//创建文件
                        System.out.println(in.mkdir());//创建文件夹
                        
      }


Io流值对数据做处理 不对文件属性做处理
Io流
Io流 放在 java.io包里面
IO流用来处理设备之间的数据传输
流按操作数据分为两种:字节流与字符流 。
流按流向分为:输入流,输出流。
Io流是用于处理设备质检的数据输入输出

处理文件时使用字符流
处理视频、图片时使用字节流

字节流的抽象基类: InputStream ,OutputStream。

字符流的抽象基类: Reader ,Writer。

注意:



抽象类是不能实现的

定义文件路径时,可以用“/”或者“\\”。
在创建一个文件时,如果目录下有同名文 件将被覆盖。
在读取文件时,必须保证该文件已存在, 否则出异常。

但是由这四个类派生出来的子类名称都是 以其父类名作为子类名的后缀可以实现。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader
Write 类是一个抽象类它是所有字符输出类的基类

Wirte 类的常用方法:
1、write(char[] ch):将字符输入写入
                2、write(String str):字符串写入
         3append() 将指定字符追加到指定文件
Reader类常用方法:
1.      Int read ()从输入流读取一个字符 当读到末尾就返回-1
2.      Abstract close () 关闭输入流
3.      Int read(char cbuf[]) 把读到的字符存在 cbuf数组里
4.      Int read(char cbuf[],int off ,int len) 把从off读到的字符存在 cbuf数组里,读len个字符
字符流:
FileWriteFileReafder
BufferedWirter BufferedWirter

FileWirte(字符流)
Flies 是Wirte 的子类,所以 FileWirte可以用wirte的方法

字符流输出是,不是直接输出到目的地输出数据,而是在内存中划分出一片缓冲区 ,先存在那里,当真正要输出的时候用flush()方法强制将缓冲区的数据输出到目的地;输出完后你能用close()关闭输出流



FileReader 是Reader的子类
Reader是有个抽象类
Reader 常用的方法有:
1、int read(char[] ch):从字符流中读取字符到字符数组中,返回读到的字符个数,如结束返回-1
      2、int read(char[] int off,int len):从字符流读取字符到字符数组中放到从off开始共len个,返回读到的字符个数,如结束返回-1

FileReader的构造方法
1、FileReader(File file):以File对象创建FileReader对象
                2、FileReader(String pathname):以文件名及路径组成的字符串创建FileReader对象

例子:
public static void main(String[] args) throws IOException{

                        
                        String put="I am crazy";
                        FileWriter input=new FileWriter("D:\\a\\b.txt");//如果文件不存在就新建
                        input.write(put);//将字符写入缓冲区
                        input.append("叻叻猪");
                        input.close();
                        //读取数据
                        FileReader b=new FileReader("D:\\a\\b.txt");
                        int temp;
                        while((temp=b.read())!=-1){
                        System.out.print((char)temp);}
                        b.close();

BufferedWirter和BufferedReader类和BufferedWirter还有Reader区别:
1 BufferedWirter构造方法要用Writer对象为参数
BufferedReader构造方法要用Reader对象为参数
2 BufferedWirter 包含的方法和Write基本相同 ,BufferedWirter多一个方法newLine()就是输入\r\n分隔符

BufferedWirter类是带缓冲的字符输出流比FileWriter更为高效

BufferedReader是带缓冲的字符输入流,比FileReader更为高效,更加适合以文本为基本单位进行的文本读取与处理
常用的构造方法:
                1、BufferedReader(Reader in):以Reader对象创建BufferedReader对象
      常用方法:
                1、String readLine();返回读取到的一行字符串,当读到null时表示读完
例子:
//带有缓冲区
                        BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\out.txt"));
                        bw.newLine();//输出分隔符号
                        bw.write("WO");
                        bw.close();
                        
                        BufferedReader br=new BufferedReader(new FileReader("D:\\out.txt"));
                        int out;
                        while((out=br.read())!=-1){
                        System.out.print((char)out);}
                        bw.close();


页: [1]
查看完整版本: java笔记 -IO