Java语言中,一个可以读取字节的序列对象称为输入流,一个可以写入字节序列的对象称为输出流
输入流与输出流分为字符流与字节流两种,分别继承于四个抽象类
在这四个抽象类中,InputStream与Reader有相同的抽象方法
int read() 读一个字节返回,结尾返回-1
int read(char c[]) 将数据读入一个数组并返回读取字节的数目,结尾返回-1
int read(char c[], int off, int len) off为数组偏移量,len为读取字节最大数
OutputStream与Writer有相同的抽象方法
void write(int n) 写入一个字节
void write(char c[]) 写入数组所有的字节
void write(char c[], int off, int len) off为数组偏移量,len为写入字节最大数
Java中文件分为文本文件与流文件,文本文件的内容以16bit表示,流文件为8bit,如图片声音等。文本文件的读写单
位是字符,通常用Reader/Writer来处理,而流文件读写单位为字节,通常用OutputStream/InputStream来处理
File类
File的四个构造函数:
File(String parent, String child)
File(File parent, String child)
File(Url url)
File(String filepath)
package example;
import java.io.*;
public class TestFile {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\Test");
if(! file.exists()){
file.mkdir();
System.out.println("Create folder C:\\Test");
}
File nextfile = new File(file,"folder1\\Test");
if(! nextfile.exists()){
nextfile.mkdirs();
}
System.out.println(nextfile.getParent());
System.out.println(nextfile.getPath());
if(nextfile.isDirectory()){
File newfile = new File(nextfile,"1.txt");
if(! newfile.exists());{
try{
newfile.createNewFile();
}
catch(IOException ex){
ex.printStackTrace();
}
System.out.println(newfile.getAbsoluteFile());
System.out.println(newfile.getAbsolutePath());
System.out.println(newfile.getName());
}
}
for (int i=1; i<=5; i++){
File listfile = new File(nextfile,"Test"+i+".txt");
if(! listfile.exists()){
try{
listfile.createNewFile();
}
catch(IOException ex){
ex.printStackTrace();
}
}
}
System.out.println("-------华丽的分割线---------");
String[] list = nextfile.list();
for(int i = 0; i<list.length;i++){
System.out.println(list[i]);
}
}
}