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

教材学习内容总结

1、File类

主要用于获取文件本身的信息,如文件所在的目录、文件的长度或文件读写权限等,不涉及对文件的读写操作。

file对象构造方法:

File(String filename);

File(String directoryPath,String filename);

File(File dir,String filename);

(filename 是文件名字,directoryPath 是文件的路径,dir为一个目录)

1.1、属性:

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

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

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.2 目录

创建目录:

public boolean mkdir()  //创建成功返回true,失败返回false

列出文件:

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); 

1.3文件的创建与删除

创建:

File file = new File ("C:\\myletter","letter.txt");

删除:

file.delete();

1.4 运行可执行文件

使用java.lang包中的Runtime类:

1:使用Runtime类声明一个对象:Runtime ec;

2:使用该类的getRuntime()静态方法创建这个对象: ec = Runtime.get.Runtime();

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

2、文件字节输入流

4步骤:

1、设定输入流的源;

2、创建指向源的输入流;

3、让输入流读取源中的数据;

4、关闭输入流。

2.1构造方法

FileInputStream(String name);

FileInputStream(File file); 

2.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指定从字节数组的某个位置开始存放读取的数据。

2.3关闭流

close()

3、文件字节输出流

4步骤:

1、给出输出流的目的地;

2、创建指向目的地的输出流;

3、让输出流把数据写入到目的地;

4、关闭输出流。

3.1 构造方法

FileOutputStream(String name);

FileOutputStream(File file);

3.2使用输出流写字节

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

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

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

3.3关闭流

调用close()方法。

关闭输出流可以把该流所用的缓冲区的内容洗掉(通常冲洗到磁盘文件上)。

4、 文件字符输入、输出流

FileReader (String filename); FileReader(File filename);

FileWriter (String filename); FileWriter (File filename) ;

FileWriter (String filename,boolean append); FileWriter (File filename,boolean append) ;

write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容被自动写入到目的地,如果关闭流,缓冲流的内容会立刻被写入目的地,流调用flush()方法可以立刻冲洗当前缓冲区,即将当前缓冲区的内容写入到目的地。

5、缓冲流

构造方法:

BufferedReader(Reader in); 

BufferedWriter (Writer out); 

读写文件:

readLine()  // 读取文本行

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

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

6、随机流

构造方法:

RandomAccessFile(String name,String mode) ; 

RandomAccessFile(File file,String mode) ;

相关方法:

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

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

7、数组流

7.1字节数组流

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(); //返回输出流写入到缓冲区的全部字节

8、数据流

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

9、对象流

序列化:将对象的状态与信息转换为可传输

构造方法:

ObjectInputStream(InputStream in)

ObjectOutputStream(OutputStream out) 

方法:

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

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

10、使用Scanner解析文件

1、使用默认分割标记解析文件:

Scanner sc = new Scanner(file);

2、使用正则表达式作为分割标记解析文件

sc.useDelimiter(正则表达式);  

方法: 

next()    //依次返回file中的单词

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

猜你喜欢

转载自blog.csdn.net/zhifengdeng/article/details/84785352
今日推荐