inputStream(来源文件)/outStream(待写入)是文件的话都已目标文件为参数,这两个都是抽象类实例化的时候需要具体的实现类赋值,
特殊结构的类要包入一般的流,即再包一层
OutputStream oo = new FileOutputStream(new File("C:\\Users\\yy\\tst\\20271109.zip"));
ZipOutputStream zip = new ZipOutputStream(oo);
byte 是纽带
转化: input 用来read
string > byte > byteArrayInputStream (Stream) (文件可以直接变为stream)/ file > fileInputStream
写入:out 用来写
byte > byteArrayOutStream > 对应的OutputStream / file > fileOutputStream
public void steamIput(){
String str = "aaaaaaaaa\nbbbbbbbbbbb";
InputStream in = new ByteArrayInputStream(str.getBytes());
BufferedInputStream bips = new BufferedInputStream(in);
int len;
byte[] b = new byte[1024];
OutputStream out = null;
try{
out = new OutPutStream(new File("C:\\Users\\yy\\hb1009\\out.txt"));
while((len = bips.read(b,0,1024))>-1){
out.write(b,0,len);
bips.close();
out.close();
}
}catch(IOException e){
}
}
@Test
public void zip() {
File file = new File("C:\\Users\\yy\\tst\\20271104.zip");
byte[] b = null;
try {
OutputStream oo = new FileOutputStream(new File("C:\\Users\\yy\\tst\\20271109.zip"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ZipInputStream zin= new ZipInputStream(new FileInputStream(file));
ZipOutputStream zip = new ZipOutputStream(oo);
ZipEntry entry;
while ((entry = zin.getNextEntry()) != null) {
ZipEntry cacheEntry = new ZipEntry(entry.getName());
if(entry.getSize()==-1l){
cacheEntry.setSize(0l);
}else{
cacheEntry.setSize(entry.getSize());
}
zip.putNextEntry(cacheEntry);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int num;
while ((num = zin.read(buf, 0, buf.length)) != -1) {
baos.write(buf, 0, num);
}
String s = new String(baos.toByteArray(), "UTF-8");
System.out.println(s);
zip.write(baos.toByteArray());//zip流生成zip
zip.closeEntry();
}
// b = bos.toByteArray(); 传递zip流
// process(b);
zip.close();
bos.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void process (byte[] a) {
try (ByteArrayInputStream bis = new ByteArrayInputStream(a);
ZipInputStream zip = new ZipInputStream(bis)) {
ZipEntry entry;
while ((entry = zip.getNextEntry()) != null) {
String fileName = entry.getName();
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
byte[] buf = new byte[1024];
int num;
while ((num = zip.read(buf, 0, buf.length)) != -1) {
baos.write(buf, 0, num);
}
String s = new String(baos.toByteArray(), "UTF-8");
System.out.println(s);
// processText(baos.toByteArray(), 0, fileName);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
字节流需要通过字节字符流桥梁再用字符流读取器转化成字符流,包装在读取器中
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
public static String sendGet(String url){
HttpUrlCoonnection conn=null;
BufferedReader in=null;
Stringbuilder resulStr =null;
try{
URL realUrl = new URL(url);
conn.setConnectionTimeOut(300000);
conn = realUrl.openConnection();
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine=null;
while((inputLine = in.readLine())!=null){
realStr.append(inputLine);
}
}catch(Exception e){
}finally{
try{
if(in !=null){
in.close();
}
if(conn!=null){
conn.close();
}
}catch(Exception e){
}
}
}
//https的post请求
public static String post(String url, String content){
LOGGER.info("------ HTTP POST request url => " + url);
LOGGER.info("------ HTTP POST request params => " + content);
String resultStr = null;
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom());
URL console = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());//解决https需要验证的问题
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("Content-Length",String.valueOf(content.getBytes().length));
conn.setRequestMethod("POST");
conn.setDoInput(true); //打开conn的outputStream.write()
conn.setDoOutput(true); //打开conn的inputStream.read();
conn.setUseCaches(false);
byte[] bytes = content.getBytes("utf-8");
conn.getOutputStream().write(bytes);
conn.getOutputStream().flush(); //要求缓存区的数据立即写入目标对象
conn.getOutputStream().close();
InputStream inputStream = conn.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = in.readLine()) != null) {
resultStr = line;
}
} catch (Exception e) {
LOGGER.error("HTTP POST 异常 : ", e);
}
LOGGER.info("------ HTTP POST response result => " + resultStr);
return resultStr;
}
/**
* 功能:Java读取文件的内容
*
* @param filePath 路径
* @param fencoding 编码格式 -- 对于字符流才有编码方式
*/
public static String readFileContent(String filePath, String fencoding) throws Exception{
StringBuffer sbr = new StringBuffer();
String encoding = "GBK";
if (!StringUtils.isBlank(fencoding)) {
encoding = fencoding;
}
File file = new File(filePath);
if (file.isFile() && file.exists()) { //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), encoding);//考虑到编码格式---对于字符流才有编码方式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
sbr.append(lineTxt);
}
read.close();
} else {
return null;
}
return sbr.toString();
}
public static boolean isNull(String str) {
boolean b = false ;
if(str==null||str.trim().equals("")) {
b = true ;
}
return b ;
}
/**
* 断空
*/
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
相关推荐
因此,这些源码可能已经优化了转化率,设计上会注重吸引用户的注意力并促使他们进行下一步操作。 接下来,我们看看压缩包内的文件名:“生活网app下载页”、“╕÷╚╦╓≈╥│╘┤┬δ、╨íu╓·╩╓╣┘╖╜═°...
本篇文章将详细讲解如何利用Kettle进行DM(动态脱敏)数据的批量落地操作,主要涉及的数据库有DMStar(动态脱敏系统)、Oracle和MySQL等。 ### 1. 准备工作 #### 1.1 数据结构导出软件 在开始之前,我们需要一个...
【百度信息流广告-新兴趣定向产品介绍】 ...总的来说,百度信息流广告的新兴趣定向产品通过精细化的人群定位和智能化的优化策略,帮助广告主在信息流广告市场中更有效地触达目标用户,提高广告投放的性价比和转化效果。
机械储能包括抽水储能、飞轮储能、压缩空气储能等,而电化学储能则涉及各种电池技术,如锂离子电池、钠硫电池、液流电池等。 分布式电源和储能融合应用的特点主要体现在以下几个方面: 1. 高效率:通过集中管理...
总结,AI算法模型和引擎的通用服务源代码是AI技术落地的关键组成部分。理解并掌握其工作原理和应用,有助于我们更好地开发和利用AI资源,推动AI技术在各行业的创新应用。同时,源代码的开源和共享也促进了技术的交流...
6. **输入/输出处理**:游戏需要接收用户输入并显示游戏状态,这涉及到C++的I/O库,如标准输入输出流(cin、cout)、文件流(fstream)等。 7. **图形界面**:虽然《俄罗斯方块》的图形相对简单,但仍需要进行图形...
Konrad Malawski的网络研讨会源代码"akka-stream-webinar-master"包含了实际操作示例,通过这些代码,开发者可以更直观地了解上述概念如何在实践中落地。学习和分析这些代码,将有助于深化对Akka Stream的理解,提升...
其结构主要包括室内机和室外机,室内机有吊顶、挂壁、落地、天井和嵌入等多种形式,室外机通常是独立的单元。空调能力的输出方式分为定速(交流或直流)和变频。主要功能包括制冷、制热,部分型号还配备电热功能,以...
报告中还提到了基于有限流的标签计算方法,即Event-User数据流模型,采用Impala和HDFS(parquet格式)作为底层计算引擎,标签规则引擎将标签定义转化为高效的SQL,利用Impala的分析函数执行特定计算规则。...
4. 红外线电热器件利用电阻产生热能,然后转化为红外辐射热。 5. PTC电热器件是利用PTC材料的电阻随温度升高而增加的特性进行加热。 6. 双金属片是一种热敏感元件,受热后会发生形变,常用于温度控制。 7. 磁性温控...
压电材料能将机械能转化为电能,而光伏电池则能捕获环境光线并转化为电能。这些技术的进步使得自供电可穿戴设备越来越实用,减少了对外部电源的依赖。 电子政务与可穿戴技术的结合,还可能推动智慧城市的建设。例如...
标题中的"Release_rabbitmq_C#源码_"表明这是一个关于RabbitMQ的C#源代码发布版本,可能包含了实现RabbitMQ在C#环境中使用的示例或者库。RabbitMQ是一个开源的消息代理和队列服务器,广泛应用于分布式系统中,用于...
通过阅读源代码,我们可以学习到如何将这些概念转化为实际的代码实现。 总的来说,《俄罗斯方块》在安卓平台的实现不仅展示了游戏设计的基本原理,还涵盖了Android应用开发的核心技术,包括图形绘制、事件处理、...
题目给出的数据包括初始速度、重力加速度以及运动时间,通过这些信息可以计算出抛出高度和落地时的速度大小。 **7. 洛伦兹力与轨道半径计算** - **知识点分析**:洛伦兹力是指带电粒子在磁场中运动时所受到的力。...
- 模型细节:介绍模型的关键元素,如何将实际问题转化为数学语言,例如,跳跃问题可以分为飞行、穿透和落地三个阶段进行考虑。 3. 方法与模型拓展: - 模型扩展与优化:可能包括对模型的改进、调整参数、引入约束...
6. 知识转化:经营分析系统不仅是数据的信息化,更是将数据转化为信息,进而提炼为企业管理的知识,促进企业的学习与改进。 7. 持续优化:经营分析系统建设不是一次性的任务,而是需要随着市场变化和企业需求的发展...
按安装方式则有吊扇、台扇、壁扇、落地扇等,满足不同空间的需求。按电动机结构,常见的是电容式和罩极式电动机。此外,电风扇的功能差异也很大,包括可摇头、定时、调速、遥控等。 在结构上,例如台扇通常包含电机...
目前,高校在数据资产化过程中面临的问题主要有:数据源不规范,导致数据加工困难;数据分布混乱,重要数据未能充分利用;缺乏数据质量评估,影响数据准确性;管控工具欠缺,数据模型和处理能力依赖第三方;以及数据...
Flink作为一个流处理引擎,支持事件时间窗口和处理时间窗口,能有效处理延迟数据,确保实时性。它可以进行数据清洗、转换、聚合等操作,比如去除重复项、数据格式转换、用户行为特征提取等。此外,Flink的Stateful ...
标题中的“可以100从sketch转换成html比市面任何一个同类库功能更强大”表明我们正在讨论一个专门用于将Sketch设计文件转换为...对于前端开发者,它可以作为将设计图落地到实际网页的桥梁,保证设计与实现的一致性。