java io文件学习笔记
2013-08-28 14:07
337 查看
java io文件学习笔记
File f = new file("D:"+File.separator+"test.txt");
File.separator跨系统文件分隔符
f.createNewFile();创建文件
f.mkdir();创建文件夹
f.delete();删除
f.list();f.listFile(); 用于遍历文件
字节流由InputStream和OutputStream处理。
对字节流进行处理的类都继承了InputStream或OutputStream。
BufferedInputStream: 提供了缓冲功能。
DataInputStream: 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
PipedInputStream: 允许以管道的方式来处理流。当连接到一个PipedOutputStream后,它会读取后者输出到管道的数据。
PushbackInputStream: 允许放回已经读取的数据。
SequenceInputStream: 能对多个inputstream进行顺序处理。
BufferedOutputStream: 提供了缓冲功能的输出流,在写出完成之前要调用flush来保证数据的输出。
DataOutputStream: 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
PipedOutputStream: 允许以管道的方式来处理流。可以将管道输出流连接到管道输入流来创建通信管道。管道输出流是管道的发送端。通常,数据由某个线程写入
PrintStream: 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。我们经常用到的System.out或者System.err都是PrintStream。
字符流由Reader和Writer处理。
输入流:
CharArrayReader: 从内存中的字符数组中读入数据,以对数据进行流式读取。
StringReader:从内存中的字符串读入数据,以对数据进行流式读取。
FileReader:从文件中读入数据。注意这里读入数据时会根据JVM的默认编码对数据进行内转换,而不能指定使用的编码。所以当文件使用的编码不是JVM默认编码时,不要使用这种方式。要正确地转码,使用InputStreamReader。
装饰类:
BufferedReader:提供缓冲功能,可以读取行:readLine();
LineNumberReader: 提供读取行的控制:getLineNumber()等方法。
InputStreamReader: 字节流通向字符流的桥梁:它使用指定的
输出流:
根数据目的相关的类:
CharArrayWriter:把内存中的字符数组写入输出流,输出流的缓冲区会自动增加大小。输出流的数据可以通过一些方法重新获取。
StringWriter: 一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串。
FileWriter:把数据写入文件。
装饰类:
BufferedWriter:提供缓冲功能。
OutputStreamWriter:字符流通向字节流的桥梁:可使用指定的
PrintWriter: 向文本输出流打印对象的格式化表示形式。
一个练习示范代码
File f = new file("D:"+File.separator+"test.txt");
File.separator跨系统文件分隔符
f.createNewFile();创建文件
f.mkdir();创建文件夹
f.delete();删除
f.list();f.listFile(); 用于遍历文件
字节流由InputStream和OutputStream处理。
对字节流进行处理的类都继承了InputStream或OutputStream。
BufferedInputStream: 提供了缓冲功能。
DataInputStream: 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。
PipedInputStream: 允许以管道的方式来处理流。当连接到一个PipedOutputStream后,它会读取后者输出到管道的数据。
PushbackInputStream: 允许放回已经读取的数据。
SequenceInputStream: 能对多个inputstream进行顺序处理。
BufferedOutputStream: 提供了缓冲功能的输出流,在写出完成之前要调用flush来保证数据的输出。
DataOutputStream: 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
PipedOutputStream: 允许以管道的方式来处理流。可以将管道输出流连接到管道输入流来创建通信管道。管道输出流是管道的发送端。通常,数据由某个线程写入
PipedOutputStream对象,并由其他线程从连接的
PipedInputStream读取。
PrintStream: 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。我们经常用到的System.out或者System.err都是PrintStream。
字符流由Reader和Writer处理。
输入流:
CharArrayReader: 从内存中的字符数组中读入数据,以对数据进行流式读取。
StringReader:从内存中的字符串读入数据,以对数据进行流式读取。
FileReader:从文件中读入数据。注意这里读入数据时会根据JVM的默认编码对数据进行内转换,而不能指定使用的编码。所以当文件使用的编码不是JVM默认编码时,不要使用这种方式。要正确地转码,使用InputStreamReader。
装饰类:
BufferedReader:提供缓冲功能,可以读取行:readLine();
LineNumberReader: 提供读取行的控制:getLineNumber()等方法。
InputStreamReader: 字节流通向字符流的桥梁:它使用指定的
charset[/code]读取字节并将其解码为字符。
输出流:
根数据目的相关的类:
CharArrayWriter:把内存中的字符数组写入输出流,输出流的缓冲区会自动增加大小。输出流的数据可以通过一些方法重新获取。
StringWriter: 一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串。
FileWriter:把数据写入文件。
装饰类:
BufferedWriter:提供缓冲功能。
OutputStreamWriter:字符流通向字节流的桥梁:可使用指定的
charset[/code]将要写入流中的字符编码成字节。
PrintWriter: 向文本输出流打印对象的格式化表示形式。
一个练习示范代码
1 package su; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.IOException; 9 import java.io.InputStream; 10 import java.io.OutputStream; 11 import java.io.Reader; 12 import java.io.Writer; 13 14 public class Test { 15 16 public static void main(String[] args) throws IOException { 17 String filename = "E:"+File.separator+"test.txt"; 18 File f = new File(filename); 19 f.createNewFile();//创建文件 20 21 OutputStream outputStream = new FileOutputStream(f, true);//简单的字节流 使用追加写入 22 23 String str = "你好,哈哈哈"; 24 byte[] b = str.getBytes(); 25 outputStream.write(b); 26 outputStream.close(); 27 28 if(f.isDirectory()){System.out.println("是文件夹");}//判断是否为文件夹 29 30 InputStream inputStream = new FileInputStream(f); //简单的inputStream读出 31 byte[] by = new byte[(int)f.length()]; //使用字节流,长度为文件的长度 32 inputStream.read(by); 33 inputStream.close(); 34 System.out.println(new String(by)); 35 36 37 Writer writer = new FileWriter(f, true); //简单的字符串写入 38 writer.write("hello"); 39 writer.close(); 40 41 Reader reader = new FileReader(f);//简单的字符串读出 42 char[] ch = new char[1000]; 43 reader.read(ch); 44 reader.close(); 45 46 print(f); //遍历文件夹下的所有文件 47 } 48 49 50 private static void print(File f) { 51 // TODO Auto-generated method stub 52 if(f!=null){ 53 if(f.isDirectory()){ 54 File[] file = f.listFiles(); 55 if(file!=null){ 56 for(int i=0;i<file.length;i++){ 57 print(file[i]); 58 } 59 } 60 }else{ 61 System.out.println(f); 62 } 63 } 64 } 65 }
相关文章推荐
- [学习笔记]Java IO之文件
- 学习笔记之JavaIO中的文件处理——File和RandomAccessFile
- Java学习笔记——File类文件管理及IO读写、复制操作
- java学习笔记-IO向文件末尾追加内容
- java学习笔记 IO学习笔记1 文件
- [学习笔记]Java文件IO操作------实现对文件的读取与写入
- Java学习笔记(五):文件IO
- Java IO ---学习笔记(文件操作与随机访问文件)
- 【Java学习笔记】18.Java 流(Stream)、文件(File)和IO
- Java文件IO学习笔记(三)--创建文件和目录
- Java IO 实现文件复制 -Java 学习笔记 (25)
- java基础-用IO演示文件的复制过程(学习笔记)
- Java文件IO学习笔记(二)---文件锁定
- java_croe 学习笔记之新IO---java.nio 之内存映射文件
- [零散篇]Java学习笔记---Java的对象序列化以及文件IO处理
- Java文件IO学习笔记(五)-删除文件夹和文件
- Java学习笔记——File类文件管理及IO读写、复制操作
- java学习笔记(九):Java 流(Stream)、文件(File)和IO
- [学习笔记]Java IO之文件
- 黑马程序员学习笔记之七(Java IO操作)