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

北京网络科技公司简介搜狗seo培训

北京网络科技公司简介,搜狗seo培训,昆明seo培训,网站建设常规自适应目录 一、什么是数据流 二、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.yidumall.com/news/55337.html

相关文章:

  • 手机做图片的网站腾讯企点官网下载
  • 苏州企业网站制作宁波关键词网站排名
  • 什么专业是做网站网络广告营销
  • 怎么做班级网站seo关键词排名优化系统源码
  • 网站怎么推广出去比较好网页入口网站推广
  • 微网站搭建教程最佳磁力吧ciliba搜索引擎
  • 渭南公司做网站网络公司网络推广服务
  • 深圳服装网站建设交换链接营销实现方式解读
  • 网站和数字界面设计师2023上海又出现疫情了
  • 织梦网站主页底小程序开发公司
  • 沙河网站建设深圳关键词推广整站优化
  • wordpress 富文本编辑器北京网站优化外包
  • wordpress整站加密网优工程师前景和待遇
  • 网络和网站的区别电商网站开发
  • 政府的网站应该怎么做门户网站怎么做
  • 微网站建设哪家好东莞谷歌推广公司
  • ftp中如何找到网站首页精准客源引流平台
  • 百度站长推送厦门排名推广
  • 注册了一个域名怎么做网站搜索引擎关键词广告
  • 如何做网站效果更好网站营销策划
  • 网站建设及管理使用情况汇报百度关键词挖掘
  • 网站流量指标有哪些网络推广营销技巧
  • 上海第五届进博会河南网站seo
  • 广州疫情风险等级最新消息合肥百度seo排名
  • 如何查看网站是什么语言做的有网站模板怎么建站
  • 成都程序员网站站长之家备案查询
  • 网站案例网站建设网页设计成品源代码
  • 店铺装修设计网免费seo快速排名系统
  • 没有网站做cpa怎么赚钱app推广代理平台
  • 用什么网站做海报 知乎武汉百度百科