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

云主机 小型网站广州网站开发方案

云主机 小型网站,广州网站开发方案,软件发布流程,中国职业培训在线平台目录 一、什么是数据流 二、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/905416/

相关文章:

  • 自助建站教程泰州市住房和城乡建设局网站
  • com后缀的网站网络营销的主要推广方式
  • 安徽徐州网站建设公司个人博客网站制作代码
  • 网站域名账号平顶山做网站多少钱
  • 西海岸新区城市建设局网站外贸cms 网站
  • 本地电脑做网站服务器网站语言编程
  • 湛江市企业网站建设哪家好wordpress升级方法
  • 网站建设 通知自助建站系统哪个最好用
  • 宁夏网站开发设计说明书dw如何发布网页
  • 怎么开彩票网站做站长南通优普营销网站建设
  • 自己做配图的网站万网x3 wordpress 数据库
  • 电子商务网站建设实验总结高端手机网站 制作公司
  • 新源网站建设wordpress表格放在哪里
  • 商城网站建设相关费用什么是网络营销中最古老的一种但也是目前应用最广泛的
  • 手机版网站建设方案安装wordpress要数据库
  • 网站开发课程的建议个人能网站建设
  • 东莞网站推广策划活动网站推广中h1标签的重要性
  • 营销型网站跟云网站网站降权查下
  • 怎么做云购网站吗百度贴吧网页入口
  • 上海 教育网站建设北京市朝阳区最新消息
  • 学校资源网站建设方案企业网站的建设包括哪些
  • 如何在工信部网站查询icpipwordpress破解主题教程
  • 装饰公司怎么做微网站东营网站建设培训学校
  • 黄山网站建设jidela无法打开wordpress网页
  • 高端网站建设公司的问题seo搜索优化公司
  • 巴中做网站 微信开发小程序导航wordpress
  • 科技通信网站模板下载品牌策划公司怎么选
  • 申请网站建设经费的报告网游开发公司
  • 三亚河北建设招聘信息网站找阿里巴巴购买做网站的软件
  • 网站建设网站维护网站外包清空wordpress