java基础知识 ---io
2014-06-04 15:34
375 查看
疯狂java讲义笔记:
1、File类
2.文件过滤器FilenameFilter接口
在File中list()方法中可以接受一个文件过滤器参数,该方法可以列出满足条件的文件
FilenameFilter接口中有一个抽象方法accept(File file,String name),该方法可以不断迭代文件的子目录和文件,返回true的时候则输出,false则不输出
3.理解java的io流
3.1按照流的流向来说分为输入流和输出流
输入流:只能从中读取数据
输出流:只能向其中写入数据
这里的输入和输出是从内存的角度来说的。从内存输出表示的输出流,往内存读入数据使用的输入流
eg:图中所示的是服务器通过网络向客户端发送数据,对于服务器的内存来说是输出数据,所以服务器使用的是输出流,而对于客户端来说,是往内存里写入数据,所以客户端使用的是输入流,用来读取数据。
java的输入流主要是inputStream 和Reader作为基类的;
输出流主要是OutputStream 和 Writer 作为基类的。
另外也可以分为:节点流和处理流
4.RandomAccessFile 文件内容访问类:既能对文件进行读也能写,支持随机访问,可以跳转到文件的任意地方进行读写操作
与OutputStream 和Writer 不同的是,RandomAccessFile可以自由定位文件记录指针,当程序创建一个RandomAccessFile对象时,该记录指针指向文件头,当读写了N个字节后,文件记录指针将会后移N个位置。除此之外,RandomAccessFile可以自由移动记录指针,既可以向前移动也可以向后移动,方法如下
long getFilePointer();返回文件的记录指针当前位置
void seek(long pos):将文件记录指针定位到pos的位置
下面是个例子:
下面的程序是如何向文件的末尾追加内容,同样采用的RandomAccessFile类
1、File类
2.文件过滤器FilenameFilter接口
在File中list()方法中可以接受一个文件过滤器参数,该方法可以列出满足条件的文件
FilenameFilter接口中有一个抽象方法accept(File file,String name),该方法可以不断迭代文件的子目录和文件,返回true的时候则输出,false则不输出
import java.io.File; import java.io.FilenameFilter; class MyFilter implements FilenameFilter{ @Override public boolean accept(File arg0, String name) { // TODO Auto-generated method stub return name.endsWith(".java")||new File(name).isDirectory(); } } public class FileNameFilterTest { public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("."); String[] list=file.list(new MyFilter()); for(String s:list) { System.out.println(s); } } }
3.理解java的io流
3.1按照流的流向来说分为输入流和输出流
输入流:只能从中读取数据
输出流:只能向其中写入数据
这里的输入和输出是从内存的角度来说的。从内存输出表示的输出流,往内存读入数据使用的输入流
eg:图中所示的是服务器通过网络向客户端发送数据,对于服务器的内存来说是输出数据,所以服务器使用的是输出流,而对于客户端来说,是往内存里写入数据,所以客户端使用的是输入流,用来读取数据。
java的输入流主要是inputStream 和Reader作为基类的;
输出流主要是OutputStream 和 Writer 作为基类的。
另外也可以分为:节点流和处理流
4.RandomAccessFile 文件内容访问类:既能对文件进行读也能写,支持随机访问,可以跳转到文件的任意地方进行读写操作
与OutputStream 和Writer 不同的是,RandomAccessFile可以自由定位文件记录指针,当程序创建一个RandomAccessFile对象时,该记录指针指向文件头,当读写了N个字节后,文件记录指针将会后移N个位置。除此之外,RandomAccessFile可以自由移动记录指针,既可以向前移动也可以向后移动,方法如下
long getFilePointer();返回文件的记录指针当前位置
void seek(long pos):将文件记录指针定位到pos的位置
下面是个例子:
<pre name="code" class="java">public class RandomAccessFileTest { public static void main(String[] args) { RandomAccessFile ra=null; try { ra=new RandomAccessFile("test.txt","r"); System.out.println("文件的记录指针所在的位置"+ra.getFilePointer()); ra.seek(300); byte [] buf=new byte[1024]; //用于保存实际读取的数字 int hasRead=0; //使用循环重复取水过程 while((hasRead = ra.read(buf))>0) { //去除水桶的水滴,转换成字符串输出 System.out.println(new String(buf,0,hasRead)); } }catch(Exception e) { e.printStackTrace(); }finally { try { ra.close(); }catch(Exception e) { e.printStackTrace(); } } } }
下面的程序是如何向文件的末尾追加内容,同样采用的RandomAccessFile类
public class AppendContent { public static void main(String[] args) { // TODO Auto-generated method stub RandomAccessFile ra=null; try { ra=new RandomAccessFile("test.txt","rw"); //将记录指针移动到文件的末尾 ra.seek(ra.length()); ra.write("这是追击的内容".getBytes()); }catch(Exception e) { e.printStackTrace(); }finally { try { ra.close(); }catch(Exception e) { e.printStackTrace(); } } } }
相关文章推荐
- java io基础知识
- 黑马程序员学习log第六篇基础知识:JAVA的面向对象之IO总结
- Java基础的IO和线程知识
- JAVA基础知识之IO——对象序列化
- JAVA基础知识之网络编程——-关于阻塞IO/非阻塞IO/同步IO/异步IO的一些参考文章
- JAVA基础知识之IO——IO流(Stream)的概念
- java中的IO基础知识
- 基础知识:Java文件IO
- JAVA基础知识之IO-File类
- java io基础知识
- 再学java基础(6)关于 java IO 知识汇总。
- 黑马程序员——java基础(IO部分知识梳理)上
- Java IO基础知识
- JAVA基础知识:IO
- java基础知识10-javaIO
- java零基础知识回顾(io简单总结)
- 黑马程序员——Java基础知识——IO(Properties、打印流、IO其他类、字符编码)
- Java基础知识之IO(1)
- Java基础知识强化之IO流笔记83:NIO与IO
- Java IO基础知识(上)