当前位置: 首页 > news >正文

旅游网站建设现状辽宁建设工程信息网分数

旅游网站建设现状,辽宁建设工程信息网分数,搜云seo,山东网站File类与IO流 文章目录 File类与IO流1. File类1.1 File类理解1.2 构造器1.3 常用方法1.4 练习 2. IO流概述2.1 IO流理解2.2 流的分类2.3 基础IO流的框架 3. FileReader/FileWriter3.1 执行步骤3.2 注意 4. FileInputStream / FileOutputStream5. 缓冲流6. 转换流的使用7. 对象流…File类与IO流 文章目录 File类与IO流1. File类1.1 File类理解1.2 构造器1.3 常用方法1.4 练习 2. IO流概述2.1 IO流理解2.2 流的分类2.3 基础IO流的框架 3. FileReader/FileWriter3.1 执行步骤3.2 注意 4. FileInputStream / FileOutputStream5. 缓冲流6. 转换流的使用7. 对象流的使用8. 其它流 1. File类 1.1 File类理解 File类位于java.io包下File类对象对应操作系统下一个文件或一个文件夹目录文件内容的读写——使用IO流 1.2 构造器 package file.fileTest;import org.junit.Test; import java.io.File;public class FileTest {Testpublic void test1(){//1. public File(String pathname)File file1 new File(E:\\Java\\JavaU\\JavaSE\\src\\file\\file_exer\\hello.txt);File file2 new File(abc);System.out.println(file2.getAbsolutePath());}Testpublic void test2(){//2. public File(String parent, String child)//参数一一定是一个文件目录//参数二可以是文件目录可以是文件File file1 new File(E:\\Java\\JavaU\\JavaSE\\src\\file\\file_exer,abc_txt);File file2 new File(abc,abc0);//3. public File(File parent, String child)//参数一一定是一个文件目录//参数二可以是文件目录可以是文件File file3 new File(file2,abc1);} } 1.3 常用方法 列出目录的下一级 //列出目录的下一级 Testpublic void test1(){File file new File(E:\\Java_learning\\JavaSE);//String[] list()返回的是相对路径String[] list file.list();for(String s : list){System.out.print(s );}System.out.println();//File[] listFiles()返回的是绝对路径File[] files file.listFiles();for(File f : files){System.out.println(f);}}File类重命名 public boolean renameTo(File dest) -- file1.renameTo(file2)file1必须存在file2必须不存在且file2所在文件目录需存在判断功能方法 -- public boolean exists():此File表示的文件或目录是否实际存在 -- public boolean isDirectory():此File表示的是否是目录 -- public boolean isFile():此File表示的是否是文件 -- public boolean canRead() -- public boolean canWriter() -- public boolean isHidden()创建、删除功能 -- public boolean createNewFile():创建文件。若文件存在则不创建返回false -- public boolean mkdir():创建文件目录。如果此文件目录存在就不创建。如果此文件的上层目录不存在也不创建 -- public boolean mkdirs():创建文件目录。如果上层文件目录不存在一并创建 -- public boolean delete():删除文件或文件夹删除注意1Java中删除不走回收站 2要删除一个文件目录该文件目录里不能包含文件或文件目录 1.4 练习 判断指定目录下是否有后缀名为.jpg的文件如果有输出该文件名称 import org.junit.Test; import java.io.File;public class Pra2 {Testpublic void test(){File file new File(C:\\Users\\cmf\\Pictures);String[] list file.list();for(String s : list){if(s.endsWith(.jpg)){ //endsWith(String s)判断后缀System.out.println(s);}}} }遍历指定目录下的所有文件的名称包括子文件目录中的文件 //遍历指定目录下的所有文件的名称包括子文件目录中的文件public void printFileName(File file){if(file.isFile()){ //如果是一个文件System.out.println(file.getName());//打印文件本身的名字}else if(file.isDirectory()){ //如果是目录File[] files file.listFiles();for(File f : files){ //遍历每个文件或目录printFileName(f); //进行递归判断接下来的文件或目录}}}删除指定目录及其下所有文件 // 删除指定目录及其下所有文件public void deleteDirectory(File file){//如果file是文件减直接delete//如果file是目录先把它的下一级删除再删除自己if(file.isDirectory()){File[] files file.listFiles();//循环删除file的下一级for(File f : files){deleteDirectory(f);}}//删除自己file.delete();}2. IO流概述 2.1 IO流理解 输入input读取外部数据到程序内存中输出output将程序内存输出到磁盘、光盘等存储设备中 2.2 流的分类 流向不同 输入流InputStream、Reader输出流OutputStream、Writer 数据单位不同 字节流InputStream、OutputStream字符流Reader、Writer 角色不同 节点流直接连接到数据源或目的地处理流 2.3 基础IO流的框架 抽象基类4个节点流文件流InputStreamFileInputStreamOutputStreamFileOutputStreamReaderFileReaderWriterFileWriter 3. FileReader/FileWriter 3.1 执行步骤 1创建读取或写出的File类对象2创建输入流或输出流3具体的读入或写出过程 读入read(char[] cbuffer)写出writer(String str) / writer(char[] cbuffer, 0, len) 4关闭流资源避免内存泄漏 import org.junit.Test; import java.io.*;public class FrfwTest {/* 读取hello.txt文件中内容并输出* */Testpublic void test1() {FileReader fr null;try {//1.创建File类的对象对应着hello.txt文件File file new File(hello.txt);//2.创建输入的字符流用于读取数据fr new FileReader(file);//3.读取数据并显示在控制台上char[] cbuffer new char[5];int len;while((len fr.read(cbuffer))! -1){//遍历数组for(int i 0; i len; i){System.out.print(cbuffer[i]);}}} catch (IOException e) {e.printStackTrace();} finally {//4.流资源关闭(必须关闭否则会内存泄漏)try {if(fr ! null)fr.close();} catch (IOException e) {e.printStackTrace();}}}/* 将内存中的数据写到指定文件中* */Testpublic void test2() {FileWriter fw null;try {//1.创建File类对象指明要写出的文件名称File file new File(info.txt);//2.创建输出流//覆盖文件使用fw new FileWriter(file);//fw new FileWriter(file,false);//在现有文件基础上末尾追加//fw new FileWriter(file,true);//3.写出具体过程fw.write(I am happy!\n);System.out.println(输出成功);} catch (IOException e) {e.printStackTrace();} finally {try {//4.关闭输出流fw.close();} catch (IOException e) {e.printStackTrace();}}} } 3.2 注意 涉及到流资源关闭操作出现异常要使用thry-catch-finally方式处理 对于输入流File类对象对应的物理磁盘上文件必须存在 对于输出流File类对象对应的物理磁盘上文件可以不存在 ​ 不存在时在输出过程中会自动创建此文件 ​ 存在时FileWriter(File file) 或 FileWriter(File file, false)会对现有文件进行覆盖 ​ FileWriter(File file, true)在现有文件基础上末尾追加 ​ 4. FileInputStream / FileOutputStream 复制一份 sky.jpg 到 sky_copy.jpg import org.junit.Test; import java.io.*;public class FileStreamTest {//复制一份sky.jpg到sky_copy.jpgTestpublic void test1(){FileInputStream fis null;FileOutputStream fos null;try {// 1. 创建File类对象File src new File(sky.jpg);File dest new File(sky_copy.jpg);// 2. 创建相关字节流fis new FileInputStream(src);fos new FileOutputStream(dest);// 3. 具体读入和写出操作byte[] b new byte[1024];int len;while((len fis.read(b)) ! -1){for(int i 0; i len; i){fos.write(buffer, 0, len);}}System.out.println(复制成功!);} catch (IOException e) {e.printStackTrace();} finally {// 4. 关闭流资源try {fos.close();fis.close();} catch (IOException e) {e.printStackTrace();}}} }注意 字符流用于处理文本文件不能处理非文本文件 字节流主要用于处理文本文件如果涉及文本文件复制操作可以使用字节流 文本文件末尾不能自动换行只会一直写下去.txt .java .c .cpp .py 非文本文件.doc .xls .jpg .mp3 .mp4 .avi等 5. 缓冲流 缓冲流是处理流中的一种 作用提升文件读取效率通过减少与磁盘的交互 处理非文本文件的字节流 使用的字节流使用方法BufferedInputStreamread(byte[ ] buffer)BufferedOutputStreamwrite(byte[ ] buffer, 0, len)处理文本文件的字符流 使用的字符流使用方法BufferedReaderread(char[ ] cBuffer) / readLine( )BufferedWriterwrite(char[ ] cBuffer, 0, len) 实现步骤 1创建File的对象、流的对象包括文件流、缓冲流2使用缓冲流实现读取数据 或 写出数据的过程3关闭资源 注意 readLine( )每次读取一行文本数据返回的字符串不包含换行符flush( )刷新方法每当调用此方法时就会主动将内存中数据写到磁盘文件中 6. 转换流的使用 要想读取时不出现乱码解码时使用的字符集与编码时使用的字符集相同 作用实现字节与字符之间的转换 API InputStreamReader: 将一个输入型的字节流转换为输入型的字符流 OutputStreamWriter: 将一个输出型的字符流转换为输出型的字节流解码字节 ——》字符 编码字符 ——》字节 1存储在文件中的字符 ascii:主要用来存储a、b、c等英文字符和1、2、3、常用标点符号。每个字符占1个字节 iso-8859-1:每个字符占1个字节。向下兼容ascii gbk:用来存储中文简体繁体、a、b、c等英文字符和1、2、3、常用标点符号等字符中文字符使用2个字节存储。向下兼容ascii,意味着英文字符、1、2、3、常用标点符号仍使用1个字节 utf-8:可以用来存储世界范围内主要语言的所有字符。使用1-4个不等的字节表示一个字符。中文字符使用3个字节存储。向下兼容ascii.2在内存中的字符 一个字符(char)占用2个字节。在内存中使用的字符集称为Unicode字符集7. 对象流的使用 数据流 DataOutputStream:可以将内存中的基本数据类型的变量、String类型的变量写到具体的文件中 DataInputStream:将文件中保存的数据还原为内存中的基本数据类型的变量、String类型的变量对象流对象流 API ObjectOutputStream ObjectInputStream作用可读写基本数据类型和应用数据类型 对象的序列化机制 指允许把内存中的Java对象转换成与平台无关的二进制流从而允许把这种二进制流持久地保存在磁盘上或通过网络将这种二进制流传输到另一个网络节点。 ​ — 当其他程序获取了这种二进制流就可以恢复成原来的 Java 对象。 序列化过程写出ObjectOutputStream —— 把内存中的Java对象保存在文件或通过网络传播出去 反序列化过程读ObjectInputStream ——将文件中的数据或网络传输来的数据还原为内存中的Java 对象 import java.io.*;public class ObjectStreamTest {/* **序列化过程**写出ObjectOutputStream—— 把内存中的Java对象保存在文件或通过网络传播出去* */Testpublic void test1() throws IOException {//1. 创建对象File file new File(object.txt);//把内存中的Java对象保存在的文件名ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(file));//2. 写出数据oos.writeUTF(我爱中国);oos.flush();//3. 关闭资源oos.close();}/* **反序列化过程**读ObjectInputStream——将文件中的数据或网络传输来的数据还原为内存中的Java 对象** */Testpublic void test2() throws IOException {File file new File(object.txt);ObjectInputStream ois new ObjectInputStream(new FileInputStream(file));System.out.println(ois.readUTF());ois.close();} }自定义类要想实现序列化机制需要满足 自定义类需要实现接口Serializable表示接口 要求自定义声明一个全局常量static final long serialVersionUID 42L; — 如果不声明全局常量serialVersionUID系统会自动生成一个针对当前类的serialVersionUID。如果修改当前的自定义类会导致serialVersionUID发生改变进而导致反序列化时出现InvailedClassException异常 要求自定义类的各个属性都是可序列化的 基本数据类型本身就是可序列化的引用数据类型也需要实现序列化机制 注意 类中的属性如果声明为transient或static则不会实现序列化 8. 其它流 标准输入流、输出流 System.in标准输入流System.out标准输出流 打印流
http://www.pierceye.com/news/871088/

相关文章:

  • 建设网站龙华怎么用自己的电脑搭建网站
  • 分析网站的网站福建交科建设有限公司官方网站
  • 深圳南园网站建设网站域名怎么设置方法
  • 网站的内链是什么意思网页布局有哪几种方法
  • 网站优化公司上海山东电力建设河北分公司网站
  • 甘肃省住房和城乡建设部网站首页专门网页制作工具有
  • 网站用vps做dns做网站的叫什么职位
  • 网站开发业务流程图网站商城与网站区别吗
  • 用新浪微博做网站百度找不到 网站
  • 哪个网站做照片书最好seo投放是什么意思
  • 书店网站开发目的和意义深圳网建公司
  • 餐饮网站方案wordpress 微论坛主题
  • 上海建筑网站设计多用户商城数据库设计
  • 网站做301将重定向到新域名深圳seo优化外包公司
  • 做视频导航网站有哪些天津西青区离哪个火车站近
  • 福州网站建设技术支持公司培训课程有哪些
  • 保定网站制作域名注册商查询
  • 医院网站建设公司价格低天津建设工程信息网 塘沽一中
  • 建设机械网站案例建国外网站需要多少钱
  • 比特币简易网站开发电商网站大全
  • 秀屿区建设局网站巨量广告投放平台
  • 合肥网站设计哪家公司好北京国贸网站建设公司
  • 帮人做网站怎么收费制作链接的app的软件有哪些
  • 商贸行业网站建设公司yoast wordpress seo
  • 上小学网站建设WordPress底部添加运行时间
  • 学校网站信息化建设工作心得网络营销现状分析
  • 藁城专业网站建设班级同学录网站建设
  • 北京手机网站开发公司wordpress用户列表
  • 上海 企业网站制成都营销型网站建设熊掌号
  • 无锡网站优化哪家好北京注册公司地址可以是住宅吗