201711671119《Java程序设计》第十章学习总结

教学内容总结

File类

一、

1.File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。

2.创建一个File对象的构造方法有3个:

File(String filename);

File(String directoryPath,String filename);

File(File f, String filename);

3. File类的下列方法获取文件本身的一些信息。

public String getName() 获取文件的名字。

public boolean canRead() 判断文件是否是可读的。

public boolean canWrite() 判断文件是否可被写入。

public boolean exits() 判断文件是否存在。

public long length() 获取文件的长度(单位是字节)。

public String getAbsolutePath() 获取文件的绝对路径。

public String getParent() 获取文件的父目录。

public boolean isFile() 判断文件是否是一个普通文件,而不是目录。

public boolean isDirectroy() 判断文件是否是一个目录。

public boolean isHidden() 判断文件是否是隐藏文件。

public long lastModified() 获取文件最后修改的时间。

 

二、目录

1.创建目录 public boolean mkdir()

2.列出目录中的文件

public String[] list() 用字符串形式返回目录下的全部文件。

public File [] listFiles() 用File对象形式返回目录下的全部文件。

public String[] list(FilenameFilter obj) 用字符串形式返回目录下的指定类型的所有文件。

public File [] listFiles(FilenameFilter obj) 用File对象形式返回目录下的指定类型所有文件。

上述两方法的参数FilenameFilter是一个接口,该接口有一个方法:

public boolean accept(File dir,String name);

3.文件对象调用方法  public boolean delete()可以删除当前文件

4.用Runtime 类声明一个对象( Runtime类在java.lang包)

              Runtime ec;

然后使用该类的getRuntime()静态方法创建这个对象:

            ec=Runtime.getRuntime(); 

ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。

 

 

文件字节输入、输出流

一、输入流

1.使用输入流通常包括4个基本步骤:

(1)设定输入流的源

(2)创建指向源的输入流

教学内容总结

File类

一、

1.File对象主要用来获取文件本身的一些信息,不涉及对文件的读写操作。

2.创建一个File对象的构造方法有3个:

File(String filename);

File(String directoryPath,String filename);

File(File f, String filename);

3. File类的下列方法获取文件本身的一些信息。

public String getName() 获取文件的名字。

public boolean canRead() 判断文件是否是可读的。

public boolean canWrite() 判断文件是否可被写入。

public boolean exits() 判断文件是否存在。

public long length() 获取文件的长度(单位是字节)。

public String getAbsolutePath() 获取文件的绝对路径。

public String getParent() 获取文件的父目录。

public boolean isFile() 判断文件是否是一个普通文件,而不是目录。

public boolean isDirectroy() 判断文件是否是一个目录。

public boolean isHidden() 判断文件是否是隐藏文件。

public long lastModified() 获取文件最后修改的时间。

 

二、目录

1.创建目录 public boolean mkdir()

2.列出目录中的文件

public String[] list() 用字符串形式返回目录下的全部文件。

public File [] listFiles() 用File对象形式返回目录下的全部文件。

public String[] list(FilenameFilter obj) 用字符串形式返回目录下的指定类型的所有文件。

public File [] listFiles(FilenameFilter obj) 用File对象形式返回目录下的指定类型所有文件。

上述两方法的参数FilenameFilter是一个接口,该接口有一个方法:

public boolean accept(File dir,String name);

3.文件对象调用方法  public boolean delete()可以删除当前文件

4.用Runtime 类声明一个对象( Runtime类在java.lang包)

              Runtime ec;

然后使用该类的getRuntime()静态方法创建这个对象:

            ec=Runtime.getRuntime(); 

ec可以调用exec(String command)方法打开本地机的可执行文件或执行一个操作。

 

 

文件字节输入、输出流

一、输入流

1.使用输入流通常包括4个基本步骤:

(1)设定输入流的源

(2)创建指向源的输入流

(3)让输入流读取源中的数据

(4)关闭输入流。

2. 构造方法:设定输入流源

(1)创建指向文件的输入流。

       FileInputStream(String name);

       FileInputStream(File file);

其中:参数name和file指定的文件称为输入流的源。

(2)使用输入流读取字节

int read() 读取单个字节的数据,返回字节值(0~255整数),如果未读出字节就返回-1。

int read(byte b[]) 读取b.length个字节到字节数组b中,返回实际读取的字节数。如果到达文件的末尾,则返回-1。

int read(byte b[], int off, int len) 读取len个字节到字节数组b中,并返回实际读取的字节数目。如果到达文件的末尾,则返回-1,参数off指定从字节数组的某个位置开始存放读取的数据。

 

二、输出流

1.包括4个基本步骤:

(1)给出输出流的目的地

(2)创建指向目的地的输出流

(3)让输出流把数据写入到目的地

(4)关闭输出流。

2.(1)构造方法

FileOutputStream(String name);

FileOutputStream(File file);

其中:参数name和file指定的文件称为输出流的目的地

(2)使用输出流写字节

输出流的wirie方法以字节单位向目的地写数据。

   void write(int n) 向目的地写入单个字节。

   void write(byte b[]) 向目的地写入一个字节数组。

   void write(byte b[],int off,int len) 从字节数组中偏移量off处取len个字节写到目的地。

(3)关闭流

使用close()方法

 

 

文件字符输入、输出流

1.Reader类提供的read方法以字符为单位顺序地读取源中的数据。

             int read():

              int read(char b[]):

              int read(char b[], int off, int len):

              void close():

              long skip(long numBytes):

2. Writer流以字符为单位顺序地写文件,每次调用write方法就顺序地向目的地写入内容。 Writer类有如下常用的方法。

              void write(int n):  向输出流写入一个字符。

              void write(byte b[]):  向输出流写入一个字符数组。

              void write(byte b[],int off,int length):  从给定字符数组中起始于偏移量off处取len个字符写到输出流。

              void close():  关闭输出流。

 

 

缓冲流

BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流。二者的源和目的地必须是字符输入流和字符输出流。 

1.构造方法:

BufferedReader(Reader in);

BufferedWriter (Writer out);

2.BufferedReader和BufferedWriter类读写文件的方法:

readLine() 读取文本行

write(String s,int off,int len) 把字符串s写到文件中

newLine(); 向文件写入一个回行符

 

随机流

使用RandomAccessFile类来创建一个随机访问文件流。RandomAccessFile类创建的流的指向既可以作为源也可以作为目的地。    

构造方法:

RandomAccessFile(String name,String mode) ;

RandomAccessFile(File file,String mode) ;

相关方法:

seek(long a)  定位RandomAccessFile流的读写位置

getFilePointer() 获取流的当前读写位置 

【readLine()方法在读取含有非ASCII字符的文件时出现“乱码”现象的解决方法:

              1.读取  String str=in.readLine();        

             2.用“iso-8859-1”重新编码   byte b[]=str.getBytes("iso-8859-1");

              3.使用当前机器的默认编码将字节数组转化为字符串

                     String content=new String(b);

 

 

数组流

1.字节数组流

字节数组输入流ByteArrayInputStream和字节数组输出流ByteArrayOutputStream分别使用字节数组作为流的源和目标。

ByteArrayInputStream构造方法及常用方法

  ByteArrayInputStream(byte[] buf);

  ByteArrayInputStream(byte[] buf,int offset,int length);

  public int read();顺序地从源中读出一个字节

  public int read(byte[] b,int off,int len);顺序地从源中读出参数len指定的字节数

ByteArrayOutputStream流构造方法及常用方法

ByteArrayOutputStream();

  ByteArrayOutputStream(int size);

  public void write(int b); 顺序地向缓冲区写入一个字节  

  public void write(byte[] b,int off,int len); 将参数b中指定的len个字节顺序地写入缓冲区

  public byte[] toByteArray(); 返回输出流写入到缓冲区的全部字节

2.字符数组

  CharArrayReader和CharArrayWriter类是字符数组流,使用字符数组作为流的源和目标。

 

 

数据流

DataInputStream和DataOutputStream类创建的对象称为数据输入流和数据输出流。

构造方法:

   DataInputStream(InputStream in)创建的数据输入流指向一个由参数in指定的底层输入流

   DataOutputStream(OutnputStream out)创建的数据输出流指向一个由参数out指定的底层输出流

 

 

对象流

ObjectInputStream和ObjectOutputStream类创建的对象称为对象输入流和对象输出流。

它的构造方法是:

    ObjectInputStream(InputStream in)

    ObjectOutputStream(OutputStream out)

 相关方法:

     writeObject(Object obj) 将一个对象obj写入到一个文件

   readObject() 读取一个对象到程序中 

 

 

序列化与对象克隆

一个对象调用clone()方法就可以获取该对象的克隆对象。

对象输入流通过对象的序列化信息来得到当前对象的一个克隆

 

使用Scanner解析文件

1.使用默认分隔标记解析文件

      创建Scanner对象,并指向要解析的文件,例如:

      File file = new File("hello.java");

      Scanner sc = new Scanner(file);

      sc将空白作为分隔标记

相关方法  next()依次返回file中的单词

              hasNext()判断file最后一个单词是否已被next()方法返回

2.使用正则表达式作为分隔标记解析文件 : 创建Scanner对象,指向要解析的文件,并使用useDelimiter方法指定正则表达式作为分隔标记,例如:

    File file = new File("hello.java");

    Scanner sc = new Scanner(file);

    sc.useDelimiter(正则表达式);

    sc将正则表达式作为分隔标记

    相关方法 next()    依次返回file中的单词

            hasNext() 判断file最后一个单词是否已被next()方法返回

 

文件对话框

构造方法JFileChooser()创建初始不可见的有模式的文件对话框。然后文件对话框调用下述2个方法:

  showSaveDialog(Component a); 提供保存文件的界面

  showOpenDialog(Component a); 提供打开文件的界面

 

 

带进度条的输入流 (在javax.swing包中)

构造方法是:

ProgressMonitorInputStream(Conmponent c,String s,InputStream);

 

 

文件锁

1.FileLock、FileChannel类处理Java提供的文件锁功能。它们分别在java.nio和java.nio.channels包中。

输入、输出流读写文件时可以使用文件锁。 

步骤:

1.先使用RondomAccessFile流建立指向文件的流对象,该对象的读写属性必须是rw,例如:

                  RandomAccessFile input=new               

            RandomAccessFile("Example.java","rw");

2.input流调用方法getChannel()获得一个连接到地层文件的FileChannel对象(信道),例如

                  FileChannel channel=input.getChannel();

 3.信道调用tryLock()或lock()方法获得一个FileLock(文件锁)对象,这一过程也称作对文件加锁.

      例如:FileLock lock=channel.tryLock();

猜你喜欢

转载自blog.csdn.net/nika_jy_L/article/details/84887448