java中把不同的输入/输出源(键盘,文件,内存,网络连接等)抽象的表述为“流”(stream)。
根据数据流的方向的不同分为输入流和输出流,根据流中数据类型的不同分为字节流和字符流 ,字节流传送的是
字节
数据(byte),字符流传送的是字符数据(char)。
两种基本的流: (1)输
入流:输入流只能从中读取数据,而不能向其写出数据;
(2)输出流:只能向其写出数据,而不能
从中读取数据。
字节流:Inputstream,Outputstream;
字符流:Reader,Writer。
File类
路径表达方法:Windows下 "D:/java学习资料/java作业"或者是"D:\\java学习资料\\java作业";
Linux下 "D:/java学习资料/java作业"。
File类提供的操作:
添加删除对象
public class FileTest {
public static void main(String[] args) throws IOException {
File f=new File("D:/cc.txt");//在堆内存中创建一个对象
if (f.exists()) //如果对象存在
{
f.delete(); //删除
}
else
{
f.createNewFile(); //创建
}
File p=new File("D:/图片");
File d=new File(p,"a.txt"); //对文件内的内容操作
d.delete();
}
}
其他操作
import java.io.File;
import java.io.IOException;
public class FileTest2 {
public static void main(String[] args) throws Exception
{
File f=new File("d:/java学习资料","b.jpg");
//f.createNewFile();
System.out.println("getName():"+f.getName());
System.out.println("getPath():"+f.getPath());
System.out.println("绝对路径名字符串:"+f.getAbsolutePath());
System.out.println("绝对路径名文件表示:"+f.getAbsoluteFile());
System.out.println("文件长度:"+f.length());
//File d=new File("d:/java学习资料","b.jpg");
//f.renameTo(d);
}
}
使用递归方法,打印出一个目录下所有文件和目录,包括子目录下的目录和文件
import java.io.File;
public class FileTest3
{
public static void main(String[] args)
{
listAllFile(new File("d:/"));
}
public static void listAllFile(File dir)
{
File[] files=dir.listFiles();
if(files!=null)
{
for(File file:files)
{
if(file.isFile())
{
System.out.println("文件:"+file.getPath());
}
else if(file.isDirectory())
{
System.out.println("目录:"+file.getPath());
listAllFile(file);
}
}
}
}
}