IO: 用来处理设备之间的数据传输 可以把内存中数据存到文件,也可以从文件中读取数据到内存() 常见应用: 文件复制(U盘拷贝) 上传文件(微信、QQ图片上传) 下载文件(迅雷下载) 分类: 输入流: *字节流: InputStream:--以后讲 *字符流: FileReader: 包: 在java.io包中 *构造方法: FileReader(String filePath); FileReader(File file); *成员方法: Int read();当返回的值是-1时说明没有数据了,作为循环读取的判断条件 Int read(char[] chs);返回读取的长度,为-1时说明已读完,作为循环读取的判断条件 *读取步骤: A:创建输入流 FileReader reader = new FileReader("r.txt"); B:调用输入流对象的对数据方法 Int ch ; While((ch=reader.read())!=-1){ System.out.print((char)ch); } C:释放资源 Reader.close(); 缓冲流: BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而高效读取文本 *构造方法: BufferedReader(FileReader reader); *成员方法: Int read();返回读到的字符 Int read(char[] chs);返回读到的长度 String readLine();一次读取一行数据,但不包含换行符,返回一行的字符串,返回null时说明已读完,作为循环读取的判断条件 输出流: *字节流: OutputStream:--以后讲 *字符流: FileWriter: 包: 在java.io包中 *构造方法: FileWriter(String filePath);创建文件并将原有文件覆盖 FileWriter(String filePath,boolean b);如果文件已存在就在文件的后面添加要写入的内容(不覆盖原有文件) FileWriter(File file);创建文件并将原有文件覆盖 FileWriter(File file,boolean b);如果文件已存在就在文件的后面添加要写入的内容(不覆盖原有文件) *成员方法: Write(String str);写一个字符串数据 Write(String str,int indext,int len);把字符串从index开始长度为len的内容写入文件 Write(int ch);写入一个字符,可以接受char参数也可以接受int参数, --如:97或'a'都是写入a字符; Write(char[] chs);写入字符数组数据 Write(char[] chs,int indext,int len);把数组中从index开始长度为len的字符写入文件 *写出数据的步骤: A:创建输出流对象 FileWriter fw = new FileWriter("d:\\a.txt"); FileWriter fw = new FileWriter("d:\\a.txt",true); B:调用输出流的写数据方法 Fw.write(String str); 数据不直接写入文件,而是先进缓冲区,需再调用: Fw.flush();刷新缓冲区,把缓冲区内容刷入文件 C:释放资源 Fw.close();先刷新缓冲区,然后通知系统释放资源 缓冲流: BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而使文本高效写入 *构造方法: BufferedWriter(FileWriter writer); *成员方法: Write(String str);把字符串写入字符输出流 Write(String str,int index,int len);把字符串从index开始长度为len的内容写入文件 Write(char[] chs);写入字符数组数据 Write(char[] chs,int index,int len);把数组中从index开始长度为len的字符写入文件 Write(int c);写入一个字符,可以接受char参数也可以接受int参数, --如:97或'a'都是写入a字符; newLine();写一个换行符 这个方法与BufferedReader的readLine()配合使用 路径: 相对路劲:相对于项目而言的,在项目的根目录下 绝对路径:以盘符开始的路径 换行符: Linux系统:“\n” windows系统:"\r\n" mac系统:"\r" 获取当前操作系统时间(单位是毫秒): long time=System.currentTimeMillis();
|