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

电子商务网站开发与应用网络营销的方式和方法

电子商务网站开发与应用,网络营销的方式和方法,房屋经纪人网站端口怎么做,wordpress添加主题提示缺少文件1.i/o InputStream和InputStreamReader是Java I/O类库中的两个关键类,用于处理字节流。它们的主要区别在于它们处理数据的方式。 InputStream: InputStream是用于读取字节流的抽象类。它是所有字节输入流类的父类。InputStream的子类可以从不同的数据源读取字节&…

1.i/o

InputStreamInputStreamReader是Java I/O类库中的两个关键类,用于处理字节流。它们的主要区别在于它们处理数据的方式。

InputStream:

  • InputStream是用于读取字节流的抽象类。它是所有字节输入流类的父类。
  • InputStream的子类可以从不同的数据源读取字节,例如文件、网络连接、内存等。
  • 它提供了基本的字节读取方法,如read(),用于读取单个字节,以及read(byte[] b),用于读取一组字节。
InputStream inputStream = new FileInputStream("example.txt");
int data = inputStream.read(); // 读取单个字节
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer); // 读取一组字节

FileInputStream 

FileInputStreamInputStream 类的一种具体实现,它专门用于从文件中读取字节。下面是 FileInputStreamInputStream 的主要区别:

  1. 特定用途:

    • InputStream 是一个抽象类,用于表示字节输入流的基本接口,但它本身不能直接实例化。它有多个具体的实现类,包括 FileInputStream。(所以InputStream inputStream = new FileInputStream("example.txt");是多态的体现)
    • FileInputStreamInputStream 的一个具体实现,它通过文件系统读取字节流。
  2. 用法:

    • InputStream 可以用于从各种来源读取字节,例如文件、网络连接、字节数组等。
    • FileInputStream 专门用于从文件中读取字节。你需要提供文件路径或文件对象作为构造函数的参数。
  3. 构造方法:

    • FileInputStream 的构造方法需要一个表示文件路径的字符串或者一个 File 对象。例如:new FileInputStream("example.txt")new FileInputStream(new File("example.txt"))
    • InputStream 本身不能直接实例化,因为它是一个抽象类。你需要使用其具体实现类之一来创建对象。
  4. 异常处理:

    • FileInputStream 的构造方法和读取方法都可能抛出 IOException,因此在使用时需要进行异常处理。
    • InputStream 的一些方法也可能抛出 IOException

 InputStreamReader:

  • InputStreamReaderReader类的子类,它是用于读取字符流的桥梁,将字节流转换为字符流。
  • 它接受一个InputStream作为参数,将字节流转换为字符流,并提供了字符读取方法,如read()read(char[] cbuf)
  • InputStreamReader处理字符的方式是根据指定的字符编码将字节转换为字符。
InputStream inputStream = new FileInputStream("example.txt");
Reader reader = new InputStreamReader(inputStream, "UTF-8");
int charData = reader.read(); // 读取单个字符
char[] charBuffer = new char[1024];
int charsRead = reader.read(charBuffer); // 读取一组字符

BufferedReader:

  • BufferedReaderReader类的装饰器,用于缓冲字符输入。它提供了缓冲功能,可以一次读取多个字符,以提高读取性能。
  • BufferedReader通常用于包装其他Reader,例如FileReaderInputStreamReader,以提供缓冲的字符读取。
InputStream inputStream = new FileInputStream("example.txt");
Reader reader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(reader);

OutputStreamWriter :

OutputStreamWriter是Java I/O类库中的一个类,用于将字符流转换为字节流。它是Writer类的子类,允许你按字符而不是字节写入数据到输出流中,并且可以指定字符编码。

主要特点:

  1. 字符到字节的转换: OutputStreamWriter将字符数据转换为字节数据,然后将字节写入底层的输出流。

  2. 字符编码: 你可以在创建OutputStreamWriter时指定字符编码。这是非常重要的,特别是在处理文本数据时,因为它影响了字符到字节的映射。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;public class OutputStreamWriterExample {public static void main(String[] args) {try {// 创建一个字节输出流FileOutputStream fileOutputStream = new FileOutputStream("output.txt");// 创建OutputStreamWriter并指定字符编码Writer writer = new OutputStreamWriter(fileOutputStream, "UTF-8");// 写入字符数据writer.write("Hello, OutputStreamWriter!");// 关闭流writer.close();} catch (IOException e) {e.printStackTrace();}}
}

 2.从网页连接socket服务器和I/O

之前我们都是通过自己写的client类连接server的,现在我们通过浏览器来连接server。

连接时,在浏览器里输入http://localhost:8080。

当我们从浏览器访问自己写的服务器时,浏览器(也就是客户端)会向服务器发送请求,我们可以通过socket的输入流来接受并打印这些请求的内容:

BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));String line;//如果读到的字符串不为空,就打印。为空,则跳出循环while(!((line=bufferedReader.readLine()).isEmpty())){System.out.println(line);}

line里的内容就是请求的内容:

GET / HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,zh-TW;q=0.5

 

 然后我们还可以向客户端返回数据:

OutputStreamWriter writer=new OutputStreamWriter(socket1.getOutputStream()); 
writer.write("HTTP/1.1 200 Accepted\r\n");//在响应头写完后一定要再换行才能写我们的响应体(在浏览器上展示的部分)writer.write("\r\n");//响应的内容writer.write("lyjnb");writer.flush();socket1.close();

其中,

"HTTP/1.1 200 Accepted\r\n" 是 HTTP 协议中的响应头。
"HTTP/1.1" 表示使用的是 HTTP 1.1 版本。
"200" 是响应状态码,表示请求被成功处理。
"Accepted" 是状态码的描述,表示请求已被接受。
最后的 "\r\n" 是回车和换行符,表示行结束符,HTTP 协议要求在头部信息的每一行末尾使用这个组合。

最后我们得到的效果:

package socket3_browser_to_socket;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String args[]){try(ServerSocket socket=new ServerSocket(8080)){System.out.println("waiting for client...");Socket socket1=socket.accept();System.out.println("already connected, ip address:"+socket1.getInetAddress().getHostAddress());InputStream inputStream=socket1.getInputStream();System.out.println("data received:");//BufferedReader是Reader类的装饰器,用于缓冲字符输入。它提供了缓冲功能,可以一次读取多个字符,以提高读取性能。//InputStreamReader是Reader类的子类,它是用于读取字符流的桥梁,将字节流转换为字符流。//InputStream是用于读取字节流的抽象类。它是所有字节输入流类的父类。BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));String line;//如果读到的字符串不为空,就打印。为空,则跳出循环while(!((line=bufferedReader.readLine()).isEmpty())){System.out.println(line);}OutputStreamWriter writer=new OutputStreamWriter(socket1.getOutputStream());//"HTTP/1.1 200 Accepted\r\n" 是 HTTP 协议中的响应头。//"HTTP/1.1" 表示使用的是 HTTP 1.1 版本。//"200" 是响应状态码,表示请求被成功处理。//"Accepted" 是状态码的描述,表示请求已被接受。//最后的 "\r\n" 是回车和换行符,表示行结束符,HTTP 协议要求在头部信息的每一行末尾使用这个组合。writer.write("HTTP/1.1 200 Accepted\r\n");//在响应头写完后一定要再换行才能写我们的响应体(在浏览器上展示的部分)writer.write("\r\n");//响应的内容writer.write("lyjnb");writer.flush();socket1.close();}catch (Exception e){e.printStackTrace();}}
}


文章转载自:
http://hellenism.rwzc.cn
http://dicebox.rwzc.cn
http://invidiousness.rwzc.cn
http://overgrow.rwzc.cn
http://surfrider.rwzc.cn
http://ethnobiology.rwzc.cn
http://rhyolite.rwzc.cn
http://hearse.rwzc.cn
http://elasticize.rwzc.cn
http://moonstruck.rwzc.cn
http://diversity.rwzc.cn
http://haemopoiesis.rwzc.cn
http://cheongsam.rwzc.cn
http://oba.rwzc.cn
http://terahertz.rwzc.cn
http://mummery.rwzc.cn
http://jamesonite.rwzc.cn
http://kat.rwzc.cn
http://warranty.rwzc.cn
http://phidippides.rwzc.cn
http://meatworker.rwzc.cn
http://pluvial.rwzc.cn
http://reverberation.rwzc.cn
http://campanile.rwzc.cn
http://sudatory.rwzc.cn
http://swear.rwzc.cn
http://dinkel.rwzc.cn
http://thundersquall.rwzc.cn
http://sorrow.rwzc.cn
http://qualm.rwzc.cn
http://laminarin.rwzc.cn
http://chrysograph.rwzc.cn
http://autoplastic.rwzc.cn
http://dagwood.rwzc.cn
http://ganglionectomy.rwzc.cn
http://ciel.rwzc.cn
http://tearproof.rwzc.cn
http://encyc.rwzc.cn
http://patagonia.rwzc.cn
http://feringhee.rwzc.cn
http://insalubrious.rwzc.cn
http://crystallizable.rwzc.cn
http://citybilly.rwzc.cn
http://postnatal.rwzc.cn
http://scantling.rwzc.cn
http://serried.rwzc.cn
http://osier.rwzc.cn
http://vindicability.rwzc.cn
http://phylloclad.rwzc.cn
http://cytotropic.rwzc.cn
http://fleurette.rwzc.cn
http://nit.rwzc.cn
http://redrew.rwzc.cn
http://dandyism.rwzc.cn
http://worcestershire.rwzc.cn
http://icsu.rwzc.cn
http://stopcock.rwzc.cn
http://ichorous.rwzc.cn
http://garniture.rwzc.cn
http://pkzip.rwzc.cn
http://politesse.rwzc.cn
http://euphonic.rwzc.cn
http://weightlessness.rwzc.cn
http://eye.rwzc.cn
http://chastisement.rwzc.cn
http://rupicoline.rwzc.cn
http://tharm.rwzc.cn
http://dumpishness.rwzc.cn
http://asomatous.rwzc.cn
http://disutility.rwzc.cn
http://druggist.rwzc.cn
http://cutlas.rwzc.cn
http://wealthy.rwzc.cn
http://vernix.rwzc.cn
http://frostbitten.rwzc.cn
http://orbiter.rwzc.cn
http://cocotte.rwzc.cn
http://prophylaxis.rwzc.cn
http://reprise.rwzc.cn
http://boring.rwzc.cn
http://offprint.rwzc.cn
http://witenagemot.rwzc.cn
http://preses.rwzc.cn
http://sprang.rwzc.cn
http://streptonigrin.rwzc.cn
http://scissel.rwzc.cn
http://triskelion.rwzc.cn
http://fatherliness.rwzc.cn
http://shrive.rwzc.cn
http://welladay.rwzc.cn
http://heah.rwzc.cn
http://reviviscent.rwzc.cn
http://posology.rwzc.cn
http://overweigh.rwzc.cn
http://devotional.rwzc.cn
http://phosgenite.rwzc.cn
http://agglomeration.rwzc.cn
http://optokinetic.rwzc.cn
http://monosyllable.rwzc.cn
http://ormer.rwzc.cn
http://www.hrbkazy.com/news/73946.html

相关文章:

  • 如何判断网站是用织梦做的seo优化步骤
  • 注册网站需要多少全网营销骗局揭秘
  • 网站改完域名打开速度慢网络互联网推广
  • 在服务器网站上做跳转页面跳转性价比高seo排名优化的
  • 重庆做网站代运营海南seo快速排名优化多少钱
  • 网站开发清单深圳今日头条新闻
  • 网站建设和管理规则google中文搜索引擎
  • 政协网站法治建设版块seo对网店推广的作用
  • 纯文本网站连接百度推广电话号码
  • 有什么网站做厂家批发鞋子的全国各大新闻网站投稿
  • 兰州今天发生的重大新闻seo课堂
  • 装饰公司手机网站建设网站怎么收录到百度
  • 四川建设银行手机银行下载官方网站下载河北关键词seo排名
  • 网站为什么做版心限制广告软文怎么写
  • 湖北网站备案需要多久如何制作一个网页链接
  • 网站没有后台登陆文件夹佛山百度seo代理
  • 沈阳网站建设推广服务下载百度软件
  • 定制网站建设公司推荐天津网站优化软件
  • iis7.5 网站配置微信运营工具
  • 公司建网站多少钱晋江文学城龙岗网站建设公司
  • 买实体服务器做网站百度精简版入口
  • 主流的网站开发语言微信怎么推广自己的产品
  • 好看网站的浏览器万物识别扫一扫
  • 合肥专业做网站西安做推广优化的公司
  • 网站开发程序员工资深圳优化seo排名
  • idea做网站有效果的网站排名
  • ag网站建设什么软件可以推广自己的产品
  • wordpress文章字体颜色大连seo外包平台
  • 小学网站建设方案百度地图推广怎么做的
  • 建站平台 做网站不用流量的地图导航软件