-
字符流的过滤器
BufferedReader BR=new BufferedReader(InputStreamReader(FileInputStream));
BufferedWrite BW=new BufferedWriter(File file);
PrintWriter PW=new PrintWriter(File file,autoflush/*是否自动刷新,值为true/false */);
BW.write();//一次可以写一行,但是不能识别换行符。
BW.newLine();//换行操作。
PW.println();//一次写一行,自动换行。
BW.flush();//刷新。
//BufferedRead()/BufferedWrite()方法参数查看API
查看全部 -
System.out.println(stu)这句,括号里的“stu”如果不是String类型的话,就自动调用student的toString()方法.不用显式打出来,即不用写成stu.toString()。如果没有重写toString方法,则输出的就是对象stu的地址.
查看全部 -
File类 直接在创建对象时指定,用于表示文件或目录地址
flie.exists(); 判断文件/目录是否存在
file.mkdir(); 创建目录 file.mkdirs(); 创建多级目录
file.createNewFile(); 创建文件
file.delete(); 删除文件或目录
file.isDirectory(); 判断是否为目录
file.isFile(); 判断是否为文件
file 返回文件路径(等于file.getAbsolutePath();)
file.getName(); 返回文件/目录名
file.getParent(); 返回当前文件的父目录地址
file.getParentFile(); 返回当前文件父目录的File对象
查看全部 -
//创建文件 file file1=new file("文件路径\\文件名称"); file file2=new file("文件路径","文件名称"); file1.exist();//文件是否存在。 file1.createnewfile();//创建file1文件。 file1.mkdir();//创建目录. file1.mkdirs();//创建多级目录. file1.getParent();//获取当前文件父目录。 file1.toString();//当前文件路径。 alt+/ 用于查看当前方法的API。查看全部
-
编码问题:新建三个文本文件联想内容同名字、联通、联。 当你的字节序列式某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码。 文本文件 就是字节序列 可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ansi编码。 联通、联这是一种巧合,他们正好符合了utf-8编码的规则。 file类的使用: RandomAccessFile的使用: 字节流的使用: 字符流的使用: 对象的序列化和反序列化:查看全部
-
write(int)只写入int的最低位的一个字节,其它3个字节被抛弃
writeInt(int)是把整个32位都写入
查看全部 -
file的length方法的作用:
如果File表示一个具体文件,则length方法返回这个文件的字节大小; 如果File表示一个目录,则length方法的返回值不确定; 如果File表示的目录或文件不存在,则length方法的返回值为0L。 你要是想获取某个目录下的子文件,是不能用length方法的,要用listFiles方法,用法如下: File[] files = file.listFiles(); listFiles方法返回一个File数组,就是拿到的所有子文件(或目录)。
File的过滤,遍历等操作 列出指定目录下的(包括子目录)的所有文件
File file = new File(); exists() 方法用于判断文件或目录是否存在
isDirectory()方法判断File类的对象是否是目录
throw new IllegalArgumentException();抛出异常
String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容
//递归 for(String string : filenames){//将filenames数组中的值,循环赋值给string,直到filenames为空时,结束循环 System.out.println(string); }
//如果要遍历目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = file.listFiles(); //返回的是直接子目录(文件)的抽象 //递归,遍历出该目录下所有文件信息,包括子目录下的文件 for(File f :files){ if(f.isDirectory){ //递归遍历该目录下的子目录的信息 listDirectory(file); } else{ System.out.pritln(file); } }
查看全部 -
Java.IO.File类表示文件或目录,只用于表示文件或目录得信息,不能用于文件的访问。 常用的API: 1.创建File对象:File file=new File(String path);注意:File.seperater();获取系统分隔符,如:”\“. 2.boolean file.exists();是否存在. 3.file.mkdir();或者file.mkdirs();创建目录或多级目录。 4.file.isDirectory()或者file.isFile()判断是否是目录或者是否是文件。 5.file.delete();删除文件或目录。 6.file.createNewFile();创建新文件。 7.file.getName()获取文件名称或目录绝对路径。 8.file.getAbsolutePath()获取绝对路径。 9.file.getParent();获取父级绝对路径。 10.file.getSize();获取文件大小。 11.file.getFormat();获取文件格式名。
查看全部 -
对象序列化操作 将Object转化为byte序列,反之叫做反序列
序列化流 ObjectOutputStream 是过滤流-------writeObject
反序列化流 ObjectInputStream-----readObject
序列化接口 Serializable,对象必须实现序列化接口,才能进行序列化,否则会出现异常,该接口没有任何方法
查看全部 -
File类常用API介绍:
public class FileDemo {
public static void main(String[] args) {
File file = new File("F:\\javaio\\imooc");
//System.out.println(file.exists());
if(!file.exists()) {
file.mkdir();
}else {
file.delete();
}
//是否是一个目录,如果是目录返回true,如果不是或者不存在返回false
System.out.println(file.isDirectory());
//是否是一个文件
System.out.println(file.isFile());
File file2 = new File("F:\\javaio\\日记1.txt");
if(!file2.exists())
try {
file2.createNewFile();
}catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
else {
file2.delete();
}
//常用的File对象API
System.out.println(file);//file.toString()的内容
System.out.println(file.getAbsolutePath());
System.out.println(file.getName());
System.out.println(file2.getName());
System.out.println(file.getParentFile());
System.out.println(file2.getParent());
System.out.println(file.getParentFile().getAbsolutePath());
}
}
查看全部 -
BufferedInputStream&BufferedOutputStream
提供了带缓存区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能
从应用程序中把输入放入文件,相当于将一罐水倒入到另外一个罐中:
FileOutputStream-->write()方法相当于一滴一滴地把水“转移”过去
DataOutputStream-->writeXxx()方法会方便一些,相当于一瓢一瓢把水“转移”
BuffereOutputStream-->write()方法更方便,相当于一瓢一瓢先放入 桶中,在从桶中倒入到另外一个罐中查看全部 -
1.如果字节数组的长度够大,(也就是比源文件的字节大小要大)则一次就能读取完流中的字节数据,此时循环只执行一次...
2.如果字节数组的长度不够大,(也就是比源文件的字节大小要小)则需要几次才能读完,每读取一次,把读取到的字节写入到输出流中,直到全部读写完毕
/* 假设源文件占250个字节,设定的字节数组长度为100
则第一次从输入流中读取100个字节存放到缓冲区的0-100的位置
并将缓冲区0-100位置的字节写入到输出流中。
第二次同样从输入流中读取100个字节存放到缓冲区的0-100的位置,这时会覆盖第一次存放在缓冲区的对应字节
并将缓冲0-100位置的字节存写入到输出流中
第三次从输入流中读取50个字节存放到缓冲区的0-50的位置,会覆盖第二次存放在缓冲区的对应字节
并将缓冲区0-50的字节写入到输出流中
第四次返回值是-1,也就是EOF标志,循环结束,已实现源文件和目标文件的完整复制
*/查看全部 -
file.createNewFile(),创建文件
file.mkdir(),创建文件夹
查看全部 -
1. PrintWriter的print、println方法可以接受任意类型的参数,而BufferedWriter的write方法只能接受字符、字符数组和字符串;
2. PrintWriter的println方法自动添加换行,BufferedWriter需要显示调用newLine方法;
3. PrintWriter的方法不会抛异常,若关心异常,需要调用checkError方法看是否有异常发生;
4. PrintWriter构造方法可指定参数,实现自动刷新缓存(autoflush);
5. PrintWriter的构造方法更广
6.PrintWriter提供println()方法可以写不同平台的换行符,而BufferedWriter可以任意设定缓冲大小
查看全部 -
1.一个类实现了序列化接口,其子类都可以进行序列化操作 2.子类序列化,递归调用父类的构造器,原理,对象实例化构造函数就是被递归调用的; 3.对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用;如果父类实现了序列化接口,那么构造函数不会被调用查看全部
举报