东莞网站建设效果好社交网络推广方法
1、File类操作文件或目录属性
(1)在Java程序中通过使用java.io包提供的一些接口和类,对计算机中的文件进行基本的操作,包括对文件和目录属性的操作、对文件读写的操作;
(2)File对象既可以表示文件,也可以表示目录,在程序中一个File对象可以代表一个文件或目录;
(3)利用File类可以来对文件或目录进行基本操作。它可以查出与文件相关的信息,如名称、最后修改日期、文件大小等;
(4)File类的常用构造方法如下所示:
1)File (String pathname):用指定的文件路径构造文件;
2)File(String dir,String subpath):在指定的目录下创建指定文件名的文件,dir参数指定目录路径,subpath参数指定文件名;
3)File(File parent,String subpath):根据一个文件对象和一个字文件构造文件对象,parent参数指定目录文件,subpath参数指定文件名。
(5)File类的常用方法如下所示:
1)boolean exists():测试文件是否存在;
2)String getAbsolutePath():返回此对象表示的文件的绝对路径;
3)String getName():返回此对象表示的文件的名称;
4)String getParent():返回此File对象的路径的上一级,如果路径名没有上一级,则返回null;
5)boolean delete():删除此对象指定的文件;
6)boolean createNewFile():创建空文件,不创建文件夹;
7)boolean isDirectory():测试此File对象表示的是否是目录;
8)boolean mkdir():创建一个目录,它的路径名由当前File由当前File对象指定;
9)boolean mkdirs():创建包括父目录的目录
关于使用File类的相关代码:
import java.io.File;public class FileTest {public static void main(String[] args) {File file1 = new File("F:\\a.txt");File file2 = new File("F:/demo");// boolean exists()测试此抽象路径名表示的文件或目录是否存在。如果存在返回true,如果不存在返回falseboolean result1 =file1.exists();System.out.println("file1对象指向的文件存在:"+result1);System.out.println("file2对象指向的目录存在:"+file2.exists());// boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录。
// boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件。System.out.println("file1对象指向的是一个文件:"+file1.isFile());//trueSystem.out.println("file1对象指向的是一个目录:"+file1.isDirectory());//falseSystem.out.println("file2对象指向的是一个文件:"+file2.isFile());//falseSystem.out.println("file2对象指向的是一个目录:"+file2.isDirectory());//true// String getName() 返回由此抽象路径名表示的文件或目录的名称。System.out.println("file1对象指向的文件名称:"+file1.getName());//a.txtSystem.out.println("file2对象指向的目录名称:"+file2.getName());//demo// boolean delete()删除此抽象路径名表示的文件或目录。删除成功返回true,删除失败,返回falseSystem.out.println("file1对象指向的文件删除成功:"+file1.delete());System.out.println("file2对象指向的目录删除成功:"+file2.delete());}
2、认识Java的流
(1)读文件是指把文件中的数据读取到内存中;
(2)写文件是把内存中的数据写到文件中;
(3)Java程序通过流来读写文件;
(4)流是指一连串流程的字符,是以先进先出的方式发送和接收数据的通道;
(5)流分为输入流和输出流,输入/输出流是相对于计算机内存来说的,如果数据输入到内存,则为输入流,如果从内存中输出则为输出流;
(6)Java的输出流主要有OutputStream类和Writer类作为基类,输入流主要由InputStream类和Reader类作为基类;
(7)在java.io包中,封装了许多输入/输出流的API,在程序中,这些输入/输出流类的对象称为流对象;
(8)可以通过流对象将内存中的数据以流的方式写入文件,也可以通过流对象将文件中的数据以流的方式读取到内存;
(9)构造流对象时往往会和数据源(如文件)联系起来。数据源分为源数据源和目标数据源。输入流关联的是源数据源;输出流关联的是目标数据源;
(10)输入/输出流又分为字节流和字符流两种形式:
1)字节流是8位通用字节流,其基本单位是字节。字节流的基类是InputStream类和OutputStream类,它们是抽象类。
2)字符流是16位Unicode字符流,基本单位是Unicode字符。字符流最适合用来处理字符串和文本,因为它们支持国际上大多数的字符集和语言。字符流的基类是Reader类和Writer类,它们是抽象类。
(11)一个被访问的流基本特征都是通过实现InputStream类、OutputStream类、Reader类和Writer类这4个抽象类的方法建立的。
(12)InputStream类常用方法如下:
1)int read():从输入流中读取下一个字节数据;
2)int read(byte[ ] b):从输入流中读取数据,并将数据存储在缓冲区数组b中,返回实际读取的字节数;
3)int read(byte[] b,int off,int len):从输入流中读取最多len长度的字节,保存到字节数组中,保存的位置从off开始;
4)void close():关闭输入流。
InputStream类的常用子类有FileInputStream,用于从文件中读取数据。
(13)OutputStream类常用方法如下:
1)void write():将指定的字节数据写入此输入流中;
2)void write(byte[ ] buf):将数组buf中的所有字节写入此输出流中;
3)void write(byte[ ] b,int off,int len):将字节数组中从偏移量off开始的长度为len的字节数据输出到输出流中;
4)void close():关闭输出流;
OutputStream类的常用子类有FileOutputStream,用于向文件写数据。
(14)Reader类常用方法如下:
1)int read(byte[ ] c):从输入流中最多读取c.length个字符,保存到字符数组c中,返回实际读取的字符数;
2)int read(char[ ] c,int off,int len):从输入流中读取最多len个字符,保存到字符数组c中,保存的位置从off开始,返回实际读取的字符数;
3)void close():关闭流。
Reader类的常用子类有BufferedReader,接受Reader对象作为参数,并对其添加字符缓冲器。
(15)Writer类常用方法如下:
1)void write(String str):将str字符串里包含的字符输出到指定的输出流中
2)void write(String str,int off,int len):将str字符串里从off位置开始,长度为len的多个字符输出到输出流中;
3)void close():关闭输出流;
4)void flush():刷新输出流。
Writer类的常用子类有BufferedWrite,用于将数据缓冲到字符输出流。
(16)在操作上字节流和字符流还有一个区别,字符流在操作时使用了缓冲区(内部存储器),而字节流在操作时直接操作文件,不会使用缓冲区;
(17)流中的方法在出现错误时都会抛出IOException异常。
关于InputStream的相关代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class FileInputStreamTest {public static void main(String[] args) throws IOException {//创建一个File类对象File file = new File("F:/test.txt");//创建FileInputStream类对象FileInputStream fileInputStream = new FileInputStream(file);//通过fileInputStream对象调用方法从file对象指向的文件中读取数据
// int read(byte[] b)从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。//创建一个byte类型的数据byte[] bytes = new byte[1024];int num =fileInputStream.read(bytes);System.out.println("从流中读取的字节数:"+num);//遍历bytes数组,输出数组中存储的数据for (int i =0;i<num;i++){System.out.print((char)bytes[i]);}fileInputStream.close();}
}
关于OutputStream的相关代码:
import java.io.FileOutputStream;
import java.io.IOException;public class FileOutputStreamTest {public static void main(String[] args) throws IOException {FileOutputStream fileOutputStream = new FileOutputStream("F:/test.txt",true);//通过fileOutputStream对象调用方法向F:/test.txt文件中写入数据//将数据字符串“asdfghjkl”写入文件中String str = "asdfghjkl";//将字符串转换为byte类型的数组byte[] bytes =str.getBytes();fileOutputStream.write(bytes);System.out.println("数据写入完毕");//关闭流fileOutputStream.close();}
}