java File,FileReader,BufferedReader,BufferedWriter,FileWriter
来源:互联网 发布:网络舞曲 编辑:程序博客网 时间:2024/05/21 17:33
常用API :点击打开链接
流类关注的是文件内容,而File类关注的是文件在磁盘上的存储。
BufferedReader : 也是字符流,但是在BufferedReader可以先把数据放到一个缓存区里,然后在进行处理,而且在BufferedReader 里有一个readLine()方法。
所谓缓冲区,就是能够一次性读取一块缓冲区大小的数据,再从缓冲区中去读取数据,而不用一点一点地直接从硬盘中抽取数据。
源码:
创建一个BufferedReader对象 super(in )也就是调用父类(Reader)的构造方法Reader(Object lock)
由java api 文档可知:
protected Reader()
创建一个新的字符流 reader,其重要部分将同步其自身的 reader。
protected Reader(Object lock)
创建一个新的字符流 reader,其重要部分将同步给定的对象。
也就是创建的BufferedReader(new Reader() ) 其中的new Reader()可以是Reader的任何子类都可以
比如FileReader --》
BufferedReader br=new BufferedReader(new FileReader(filepath));
2.BufferedWriter FileWriter
3.字节流与字符流的区别:
字节流和字符流使用是非常相似的,那么除了操作代码的不同之外,还有哪些不同呢?
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容
4.那开发中究竟用字节流好还是用字符流好呢?
在所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,包括图片也是按字节完成,而字符是只有在内存中才会形成的,所以使用字节的操作是最多的。
如果要java程序实现一个拷贝功能,应该选用字节流进行操作(可能拷贝的是图片),并且采用边读边写的方式(节省内存)。
------------------------------------------------
5. Java.io.File(File用于管理文件或目录; 所属套件:java.io)
1、 构造函数:File(java.lang.string路径,java.lang.string文件名) 说明:建立代表文件或目录的File对象。
2、 canRead方法:(boolean canRead())判断是否可读取
3、 canWrite方法:(boolean canWrite)判断是否可以写入
4、 createNewFile方法:(boolean createNewFile())说明:创建文件,成功返回TRUE,否则返回false
5、 delete方法:(boolean delete())说明:删除文件或目录,成功返回TRUE,否则返回FALSE。
6、 exist方法:(boolean exist()) 说明:检查文件或目录是否存在。
7、 getName方法:(java.lang.string getName()) 说明:取得文件或目录的名称(只有文件的name)。
8、 getPath方法:(java.lang.string getPath()) 说明:取得文件或目录的名称(包括文件的name)。
9、 lastModified方法:(long lastModified()) 取出最后一次修改的时间。
10、 length方法:(int length())说明:取得文件的长度
11、 listfiles方法:(File[] listFiles()) 说明:取出该目录下的所有文件。
12、 isDirectory方法:(boolean isDirectory())说明:判断是否为文件。
13、 isFile方法:(boolean isFile) 说明:判断是否为文件。
14、 isHidden 方法:( Boolean isHidden()) 说明:判断是否为隐藏文件。
15、 mkdir方法:(boolean mkdir)说明:创建目录,成功返回TRUE,否则返回FALSE
四、 java.io.FileReader(FileReader 用于从文件中读取字符 ;所属套件:java.io)
1、 构造函数(FileReader (Java.lang.strig文件路径和名称) 说明:为要读取的文件建立一个FileReader对象)
2、 read方法:(1)(int read())说明:从文件读取一个字符,返回值为一整数,为读取得字符串的字符码,若返回值为-1,则代表已经读到文件的结尾。(2) int read(char[] chararray,int startpos,int length)说明:将从startpos开始,读取length字符,保存到chararray数组中,返回值是读取到的字数,如果返回-1,则代表已经读到文件的结尾。
流类关注的是文件内容,而File类关注的是文件在磁盘上的存储。
BufferedReader : 也是字符流,但是在BufferedReader可以先把数据放到一个缓存区里,然后在进行处理,而且在BufferedReader 里有一个readLine()方法。
所谓缓冲区,就是能够一次性读取一块缓冲区大小的数据,再从缓冲区中去读取数据,而不用一点一点地直接从硬盘中抽取数据。
源码:
public class BufferedReader extends Reader {private static int defaultCharBufferSize = 8192; public BufferedReader(Reader in, int sz) { super(in); if (sz <= 0) throw new IllegalArgumentException("Buffer size <= 0"); this.in = in; cb = new char[sz]; nextChar = nChars = 0; }public BufferedReader(Reader in) { this(in, defaultCharBufferSize); }}
创建一个BufferedReader对象 super(in )也就是调用父类(Reader)的构造方法Reader(Object lock)
public abstract class Reader implements Readable, Closeable { protected Object lock; protected Reader() { this.lock = this; } protected Reader(Object lock) { if (lock == null) { throw new NullPointerException(); } this.lock = lock; }
由java api 文档可知:
protected Reader()
创建一个新的字符流 reader,其重要部分将同步其自身的 reader。
protected Reader(Object lock)
创建一个新的字符流 reader,其重要部分将同步给定的对象。
也就是创建的BufferedReader(new Reader() ) 其中的new Reader()可以是Reader的任何子类都可以
比如FileReader --》
BufferedReader br=new BufferedReader(new FileReader(filepath));
public List getFilepathString(String filepath){BufferedReader br=null;List<String> list=null;try{list=new ArrayList<String>();br=new BufferedReader(new FileReader(filepath));String temp;while((temp=br.readLine())!=null){list.add(temp);}}catch(IOException e){System.out.println("getRowNum error ");}finally{if(null !=br){try{br.close();}catch(IOException e){System.out.println("br close error");}}}System.out.println("File's size:"+list.size());return list;}
2.BufferedWriter FileWriter
/** * 写入文件并换行 * @param file * @param list * @return * @throws IOException */public boolean writeToFile2(File file,List list) throws IOException{BufferedWriter bw=new BufferedWriter(new FileWriter(file));try{for(int i=0;i<list.size();i++){String s=list.get(i).toString();bw.write(s);bw.newLine();System.out.println(s);//bw.flush();//bw.close();}bw.flush();}catch(Exception e){return false;}finally{if(bw!=null){bw.close();}}return true;}@Testpublic void test10(){List list=new ArrayList();String s="1,3,2,4,6";String s1="1,3,100,4,6";String s2="1,3,101,4,6";String File="C:\\Users\\P1311529\\Desktop\\MOM04_GDC3_20171015_01.csv";list.add(s);list.add(s1);list.add(s2);System.out.println(list);try {System.out.println(writeToFile2(new File(File),list));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}FileOutputStream fos=new FileOutputStream(file,true); PrintStream ps=new PrintStream(fos);public boolean writeToFile(File file,List list) throws IOException{ for(int i=0;i<list.size();i++){ String s=list.get(i)+"\r\n"; FileOutputStream fos=new FileOutputStream(file,true); PrintStream ps=new PrintStream(fos); System.out.println(s); ps.print(s); ps.close(); }return true;}
3.字节流与字符流的区别:
字节流和字符流使用是非常相似的,那么除了操作代码的不同之外,还有哪些不同呢?
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容
4.那开发中究竟用字节流好还是用字符流好呢?
在所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,包括图片也是按字节完成,而字符是只有在内存中才会形成的,所以使用字节的操作是最多的。
如果要java程序实现一个拷贝功能,应该选用字节流进行操作(可能拷贝的是图片),并且采用边读边写的方式(节省内存)。
------------------------------------------------
5. Java.io.File(File用于管理文件或目录; 所属套件:java.io)
1、 构造函数:File(java.lang.string路径,java.lang.string文件名) 说明:建立代表文件或目录的File对象。
2、 canRead方法:(boolean canRead())判断是否可读取
3、 canWrite方法:(boolean canWrite)判断是否可以写入
4、 createNewFile方法:(boolean createNewFile())说明:创建文件,成功返回TRUE,否则返回false
5、 delete方法:(boolean delete())说明:删除文件或目录,成功返回TRUE,否则返回FALSE。
6、 exist方法:(boolean exist()) 说明:检查文件或目录是否存在。
7、 getName方法:(java.lang.string getName()) 说明:取得文件或目录的名称(只有文件的name)。
8、 getPath方法:(java.lang.string getPath()) 说明:取得文件或目录的名称(包括文件的name)。
9、 lastModified方法:(long lastModified()) 取出最后一次修改的时间。
10、 length方法:(int length())说明:取得文件的长度
11、 listfiles方法:(File[] listFiles()) 说明:取出该目录下的所有文件。
12、 isDirectory方法:(boolean isDirectory())说明:判断是否为文件。
13、 isFile方法:(boolean isFile) 说明:判断是否为文件。
14、 isHidden 方法:( Boolean isHidden()) 说明:判断是否为隐藏文件。
15、 mkdir方法:(boolean mkdir)说明:创建目录,成功返回TRUE,否则返回FALSE
四、 java.io.FileReader(FileReader 用于从文件中读取字符 ;所属套件:java.io)
1、 构造函数(FileReader (Java.lang.strig文件路径和名称) 说明:为要读取的文件建立一个FileReader对象)
2、 read方法:(1)(int read())说明:从文件读取一个字符,返回值为一整数,为读取得字符串的字符码,若返回值为-1,则代表已经读到文件的结尾。(2) int read(char[] chararray,int startpos,int length)说明:将从startpos开始,读取length字符,保存到chararray数组中,返回值是读取到的字数,如果返回-1,则代表已经读到文件的结尾。
3、 skip方法:(long skip(int 要略过的字符数) 说明:直接将文件读取指针向后移动数个字符,从而略过字符不读取);
阅读全文
0 0
- java File,FileReader,BufferedReader,BufferedWriter,FileWriter
- FileReader,FileWriter,BufferedReader,BufferedWriter,File,FilenameFilter,PrintWriter,Seque)
- java学习10--InputStreamReader,OutputStreamWriter,FileReader,FileWriter,BufferedReader,BufferedWriter
- Java基础知识_day10_(IO流,FileWriter,FileReader,BufferedWriter,BufferedReader)
- Java之IO(二)FileReader、FileWriter、BufferedReader、BufferedWriter
- 黑马程序员—Java IO流(Writer、Reader、FileWriter、FileReader、BufferedWriter、BufferedReader)
- 黑马程序员---2015.6.24java基础笔记--FileWriter- FileReader-BufferedWriter-BufferedReader
- Java中IO字符流FileReader,FileWriter,缓冲流BufferedReader,BufferedWriter流,随机流
- IO流 缓冲流 FileInputStream、BufferedInputStream、BufferedReader、 BufferedWriter、FileReader、FileWriter
- BufferedReader,BufferedWriter 为什么比 FileReader 和 FileWriter高效
- FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedReader,BufferedWriter相关的IO技术
- 字符流FileReader,FileWriter,BufferedWriter,BufferedReader,装饰设计模式,LineNumberReader
- JavaSE--IO流(FileWriter,FileReader,BufferedWriter,BufferedReader)的用法介绍
- java输入输出流FileReader,FileWriter,BufferedReader
- 字符流学习笔记及总结(FileWriter、FileReader、BufferedWriter、BufferedReader)
- IO流的补充: 字符流FileReader 和FileWriter BufferedReader和BufferedWriter的用法
- 黑马程序员——21,字符流FileReader,FileWriter,BufferedWriter,BufferedReader,装饰设计模式,LineNumberReader
- day19字符流: FileReader FileWriter (BufferedReader BufferedWriter ) 字节流: InputStream OutputStream读取键盘录入
- 通过Spring Resource接口获取资源
- DXUT error link 2019
- 软件发展方向之一:软件工具化
- 相关知识点链接
- 分享Spring Cloud微服务云架构代码结构
- java File,FileReader,BufferedReader,BufferedWriter,FileWriter
- ECharts属性设置
- maven 依赖查看 分析 (待完善)
- SecureCRT 安装和使用
- 《Linux内核设计与实现》读书笔记(一)-内核简介
- VirtualAPK详解和使用
- Binary Hacks:黑客秘笈100选
- dubbo配置安装
- python 的字典和方法