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

wordpress 全站ssl上海百度公司

wordpress 全站ssl,上海百度公司,网站开发设计制作合同,电商平台定制目录 一、什么是数据流 二、InputStream概述 2.1、方法 2.2、说明 三、FileInputStream概述 3.1、构造方法 3.2、利用Scanner进行字符串读取,简化操作 四、OutputStream概述 4.1、方法 4.2、PrinterWriter简化写操作 五、小程序练习 示例1 示例…

目录

一、什么是数据流

二、InputStream概述

2.1、方法

2.2、说明

三、FileInputStream概述

3.1、构造方法 

3.2、利用Scanner进行字符串读取,简化操作 

四、OutputStream概述  

4.1、方法 

4.2、PrinterWriter简化写操作

五、小程序练习 

示例1 

示例2 


一、什么是数据流

 对照我们的现实生活,可以想象成流水。

流的输入(读)和流的输出(写),针对于内存来说的,从设备包括硬盘,网卡的数据进入内存叫输入(Input),从内存把数据写到硬盘,网卡叫输出(Output) 。

Java中针对input和Output提供了两个抽象类

  1. InputStream输入流,从文件中把数据读取到内存。
  2. OutputStream输出流,把数据从内存输出到文件。 

 

二、InputStream概述

2.1、方法

修饰符以及返回值类型方法签名说明
int read()读取一个字节的数据,返回-1代表已经完全读完了.
intread(byte[] b)最多读取b.length自己的数据到b中,返回实际读到的数量;-1代表已经读完了.
intread(byte[] b,int off,int len)最多读取len-off字节的数据到b中,放在off开始,返回实际读到的数量;-1代表已经读完了.
voidclose()关闭字节流

2.2、说明

InputStream只是一个抽象类,要使用还是需要具体的实现类。关于InputStream的实现类有很多,基本可以认为不同的输入设备都可以对应一个InputStream类,本篇博客只讲从文件中读取,所以使用FileInputStream

三、FileInputStream概述

3.1、构造方法 

签名说明
FileInputStream(File file)利用File对象构造文件输入流
FileInputStream(String name)利用文件路径构造文件输入流

 示例1 


import java.io.FileInputStream;
import java.io.IOException;/*** 创建一个输入流读取文件内容*/
public class Exe_01 {public static void main(String[] args) throws IOException {FileInputStream inputStream=new FileInputStream("C:/Temp/Hello.txt");//创建一个byte数组,来接收每次读取的内容,扩大缓冲区的容量byte[] bytes=new byte[1024];//循环读取while(true){//获取每次读取的长度int len=inputStream.read(bytes);//如果等于-1,就说明读完了if(len==-1){break;}//打印读取的内容for (int i = 0; i < len; i++) {System.out.print(bytes[i]+",");}}//关闭数据流inputStream.close();}
}

3.2、利用Scanner进行字符串读取,简化操作 

上述例子中,我们看到了对字符类型直接使用 InputStream 进行读取是非常麻烦且困难的,所以,我们使用一种我们之前比较熟悉的类来完成该工作,就是 Scanner 类 。

示例2 


import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;public class Exe_05 {public static void main(String[] args) throws IOException {//创建一个流FileInputStream inputStream=new FileInputStream("C:/Temp/基尼太美.txt");//使用Scanner简化操作Scanner sc=new Scanner(inputStream,"UTF-8");//循环读取while(true){//判断if(!sc.hasNextLine()){break;}String str=sc.nextLine();System.out.println(str);}sc.close();inputStream.close();}
}

四、OutputStream概述  

4.1、方法 

修饰符及返回值类型方法签名说明
voidwrite(int b)写入要给字节的数据
void write(byte[] b)将b这个字符数组中的数据全部写道os中
int write(byte[] b,int off,int len)将b这个字符数组从off开始的数据写到os中,一共写len个
voidclose()关闭字节流
void flush()重要:I/O的速度是很慢的,所以,大多的OutputStream为了减少设备操作的次数,在写数据的时候都会将数据先暂时的写入到内存的一个指定区域里面,知道该区域满了或者其它指定条件时才真正的将数据写入到设备中,这个区域就叫缓冲区。但这样会造成一个结果,就是我们写的数据很有可能一部分留在缓冲区中。所以需要在最后或者合适的位置,调用flush(刷新)操作,将数据刷到设备中。

说明

OutputStream同样只是一个抽象类,要使用还需要具体的实现类。跟上述一样本篇博客只讲从文件中读取,所以使用FileOutputStream

示例3


import java.io.FileOutputStream;
import java.io.IOException;public class Exe_02 {public static void main(String[] args) throws IOException {//创建一个输出流FileOutputStream outputStream=new FileOutputStream("C:/Temp/基尼太美.txt");//在文件中写入一些内容outputStream.write(189);outputStream.write(188);outputStream.write(187);outputStream.write(186);//刷新一下缓冲区outputStream.flush();//关闭流outputStream.close();}
}

运行结果 

 

import java.io.FileInputStream;
import java.io.IOException;public class Exe_03 {public static void main(String[] args) throws IOException {FileInputStream inputStream=new FileInputStream("C:/Temp/基尼太美.txt");while(true){int data=inputStream.read();if(data==-1){//返回-1,读取结束break;}System.out.println(data);}//关闭流inputStream.close();}
}

示例4


import java.io.FileWriter;
import java.io.IOException;/*** 基于字符的输出流*/
public class Exe_04 {public static void main(String[] args) throws IOException {FileWriter fileWriter=new FileWriter("C:/Temp/基尼太美.txt");fileWriter.write("Cause I got a crush on you who you");//换行符需要手动添加fileWriter.write("\n");fileWriter.write("你是我的我是你的谁");fileWriter.write("\n");fileWriter.write("再多一眼看一眼就会爆炸");fileWriter.write("\n");fileWriter.write("再近一点靠近点快被融化");//清空缓冲区fileWriter.flush();//关闭流fileWriter.close();}
}

4.2、PrinterWriter简化写操作

示例5 


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;/***PrinterWriter简化写操作*/
public class Exe_06 {public static void main(String[] args) throws IOException {//创建一个输出流FileOutputStream outputStream=new FileOutputStream("C:/Temp/基尼太美.txt");//根据输出流,创建一个PrinterWriterPrintWriter printWriter=new PrintWriter(outputStream);//写数据,自带换行符printWriter.println("Cause I got a crush on you who you");printWriter.println("再近一点靠近点快被融化");printWriter.println("再多一眼看一眼就会爆炸");printWriter.println("你是我的我是你的谁");//关闭流printWriter.close();outputStream.close();}
}

 

五、小程序练习 

示例1 

扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件 。


import java.io.File;
import java.io.IOException;
import java.util.Scanner;public class Exe_07 {public static void main(String[] args) throws IOException {//让用户输入一个路径System.out.println("请输入一个文件路径");Scanner sc=new Scanner(System.in);//获取路径字符串String rootPath=sc.nextLine();//根据字符串创建一个File对象File rootFile=new File(rootPath);//判断路径是否有效if(!rootFile.exists()){System.out.println("对不起,您输入的路径是无效路径!!!");return;}//判断是不是一个有效目录if(!rootFile.isDirectory()){System.out.println("对不起,你输入的路径不是一个有效目录");return;}//让用户输入一个要找的关键字System.out.println("请输入你要删除的关键字");String keyWords=sc.nextLine();//判断输入是否为空if(keyWords==null){System.out.println("关键字不能为空");return;}//扫描文件scan(rootFile,keyWords);}private static void scan(File rootFile, String keyWords) throws IOException {//先获取root目录下的所有子文件以及目录File[] files=rootFile.listFiles();//判断数据是否为空if(files==null||files.length==0){//不做任何操作return;}//遍历数组检查操作for (File item:files) {//检查file对象是否是文件还是目录if(item.isFile()){//检查文件名是否包含关键字String fileName=item.getName();if(fileName.contains(keyWords)){//找到了,询问用户是否需要删除文件System.out.println("找到了"+item.getCanonicalFile()+",包含关键字"+keyWords+",是否删除文件(Y/N)?");//接收用户请求Scanner scanner=new Scanner(System.in);String result=scanner.nextLine();//处理操作if(result.toLowerCase().equals("y")){//删除文件item.delete();System.out.println("删除文件"+item.getCanonicalFile()+"成功!!!");}else{return;}}}else{//如果目标文件是一个目录,递归区扫描目录文件scan(rootFile,keyWords);}}}
}

示例2 

普通文件的复制


import java.io.*;
import java.util.Scanner;public class Exe_08 {public static void main(String[] args) {//让用户输入一个路径System.out.println("请输入源文件路径");Scanner sc=new Scanner(System.in);//获取路径字符串String sourcePath=sc.nextLine();//根据字符串创建一个File对象File sourceFile=new File(sourcePath);//判断文件是否有效if(!sourceFile.exists()){System.out.println("源文件无效,请重新输入!!");return;}//获取目标输入的目标文件路径System.out.println("请输入要复制到的目标文件路径");String targetPath=sc.nextLine();// 根据目标路径创建File对象File targetFile=new File(targetPath);// 判断目标路径是否有效if (targetFile.exists()) {System.out.println("目标文件已存在,请重新输入.");return;}// 判断目标文件的父目录必须存在if(!targetFile.getParentFile().exists()){System.out.println("目标文件的目录不正确");return;}//创建输入输出流try {InputStream inputStream=new FileInputStream(sourceFile);OutputStream outputStream=new FileOutputStream(targetFile);//读取源文件内容byte[] bytes=new byte[1024];while(true){//获取读取的长度和内容int len = inputStream.read(bytes);if(len==-1){break;}//把读取的文件写入目标文件中,从0~lenoutputStream.write(bytes, 0, len);}//刷新缓冲区outputStream.flush();//打印日志System.out.println("复制成功"+sourceFile.getCanonicalFile()+"--->"+targetFile.getCanonicalFile());//关闭流inputStream.close();outputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}
}

http://www.yayakq.cn/news/486252/

相关文章:

  • 旅游网站的导航栏目设计淄博网站制作定制技术
  • 平面设计案例网站开发板有哪些
  • 免费做网站的平台六安网
  • 网站建设图片改不了南京外贸推广
  • 网站建设课程 谷建有没有做ppt很厉害的网站
  • 网站开发平台及常用开发工具北京工程网站建设
  • 域名绑定网站设计书籍频道已开放
  • 网站首页加载特效手机建网站步骤软件
  • 推广网站代码自己做网站 最好的软件
  • 做单页网站怎么选产品商务网站开发的基本原则
  • e福州app官方网站做别墅装修的公司
  • 长沙市制作企业网站公司html设计主题网站代码
  • 做盗版系统网站会不会怎样登录建设银行官方网站
  • 佛山外贸建站爱站权重查询
  • 马云的网站怎么做的网站用什么做关键词
  • 竭诚网络网站建设公司谷哥做网站 是如何推广的
  • c2c代表网站万江网站制作
  • 毕业设计拼车网站的建设雨实现建设网站的建设费用包括什么
  • 温岭 网站建设网络对企业管理的影响
  • iis建设网站教程怎样用自己的电脑,做网站
  • 有哪些网站可以做微商专业的西安免费做网站
  • 一个做炉石视频的网站赣州专业企业网站建设
  • wordpress移动到回收站时发生错误北京seo网站结构优化
  • 低成本做网站 百知软件开发文档模板下载
  • 淄博好的建网站公司如何运营一个品牌的推广
  • 移动应用还是网站开发陕西网络公司网站建设
  • 网站制作的常见布局建设银行北海分行网站
  • 网站建设-好发信息网wordpress文章文件夹
  • 中国建设网网站phpcms 生成网站地图
  • 网站流量统计分析工具库车建设工程信息网站