2015-2月的小程序们

马上就要过年了,今天是二月最后一天上班了,心情有些激动,恨不得立马就到家去。再来公司的时候就是3.1号了,所以在离开之前把2月份的小程序们储存起来。虽然很多都是参考了网上的小程序练习,但是自己有自己的风格,感觉存起来意义很大的,这样坚持了两个月不到,感觉很多基础的东西有了更加清晰的概念,解决很多问题的时候都会到原点去想问题了。

package everyworkdayprogramming._2015_2_02;

/**
 *
 * 将字符串还原成:“我要学编程”。如:我...我.要....
 *
 * */
public class Java_2_2 {
	public static void main(String[] args) {
		String str = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
		str = str.replaceAll("\\.+", "");
		System.out.println("去点以后--->"+str);
		str=str.replaceAll("(.)\\1+", "$1");
		System.out.println(str);
	}
}
package everyworkdayprogramming._2015_2_03;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

/**
 * 模拟UDP协议做一个聊天工具
 *
 *
 * */
public class Java_2_3_server {
	public static void main(String[] args) throws IOException {
		// 创建发送服务端
		DatagramSocket ds = new DatagramSocket();
		// 创建键盘录入对象,并用转换流转换后高效处理
		BufferedReader bufferedReader = new BufferedReader(
				new InputStreamReader(System.in));
		String s = null;
		while ((s = bufferedReader.readLine()) != null) {

			// 把每一行数据进行封装
			byte[] b = s.getBytes();

			String str = "192.168.1.221";
			String[] ipStr = str.split("\\.");
			byte[] ipBuf = new byte[4];
			for (int i = 0; i < 4; i++) {
				System.out.println(Integer.parseInt(ipStr[i])&0xff);
				ipBuf[i] = (byte) (Integer.parseInt(ipStr[i]) & 0xff);
			}

			DatagramPacket dp = new DatagramPacket(b, b.length,
					InetAddress.getByAddress(ipBuf), 9900);

			ds.send(dp);
		}

		ds.close();
		bufferedReader.close();
	}
}
package everyworkdayprogramming._2015_2_03;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Java_2_3_receiver {
	public static void main(String[] args) throws Exception {
		// 创建接收端的服务
		DatagramSocket ds = new DatagramSocket(9900);

		// 接收数据

		while (true) {
			byte[] bye = new byte[1024];

			// 调用接收方法接收数据

			DatagramPacket dp = new DatagramPacket(bye, bye.length);
			ds.receive(dp);

			// 打印数据
			System.out.println(dp.getAddress()+ "发来"
					+ new String(dp.getData(), 0, dp.getLength()));

		}
	}
}
package everyworkdayprogramming._2015_2_04;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Java_2_4_server {
	/**
	 *
	 *
	 * 模拟Tcp协议的传输过程
	 *
	 * */
	public static void main(String[] args) throws Exception {
		// 定义服务器接收端口

		ServerSocket serverSocket = new ServerSocket(65533);

		// 获取服务器Socket接口

		Socket s = serverSocket.accept();

		// 获取读取客户端的流
		BufferedReader br = new BufferedReader(new InputStreamReader(
				s.getInputStream()));

		// 定义输出客户端数据的流

		PrintWriter printWriter = new PrintWriter(System.out, true);

		// 获取反馈给客户端的流

		PrintWriter pw = new PrintWriter(s.getOutputStream(), true);

		// 写入到客户端的控制台

		String str = null;

		while ((str = br.readLine()) != null) {
			printWriter.println(str);
			// 返回数据
			pw.println("收到");
		}
		serverSocket.close();
		s.close();
	}
}
package everyworkdayprogramming._2015_2_04;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class Java_2_5_client {
	public static void main(String[] args) throws Exception {

		// 定义客户端端口
		Socket socket = new Socket("192.168.1.221", 65533);
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		OutputStream out = socket.getOutputStream();
		PrintWriter pw = new PrintWriter(out, true);

		// 定义读取服务器的字符流

		BufferedReader br1 = new BufferedReader(new InputStreamReader(
				socket.getInputStream()));
		String s1 = null;

		// 写入服务器
		while ((s1 = br.readLine()) != null) {
			if ("over".equals(s1)) {
				break;
			}
			System.out.println("---------->"+s1);
			pw.println(s1);

			// 读取服务器的数据
			String s3 = br1.readLine();
			System.out.println(s3);
		}

		pw.close();
		br.close();
		br1.close();
		socket.close();

	}
}
package everyworkdayprogramming._2015_2_05;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 *
 * 通过主机名和IP地址获得对方
 *
 * */
public class Java_2_5 {
	public static void main(String[] args) throws UnknownHostException {
		InetAddress id1 = InetAddress.getByName("mpc-pc");
		InetAddress id = InetAddress.getByName("192.168.1.221");

		String ip = id.getHostAddress();
		String name = id.getHostName();

		System.out.println(ip + "-----------------" + name);
		System.out.println(id1.getHostAddress() + "-----------------"
				+ id1.getHostName());
	}
}
package everyworkdayprogramming._2015_2_06;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 *
 * java的DataOutputStream和DataInputStream
 *
 * */
public class Java_2_6 {
	public static void main(String[] args) throws Exception {
		Member member = new Member("糜鹏程", 23);
		DataOutputStream dataOutputStream = new DataOutputStream(
				new FileOutputStream("d:/member.mpc"));
		dataOutputStream.writeUTF(member.getName());
		dataOutputStream.writeInt(member.getAge());

		// 所有数据到目的地
		dataOutputStream.flush();
		// 关闭流
		dataOutputStream.close();

		DataInputStream dataInputStream = new DataInputStream(new FileInputStream("d:/member.mpc"));
		System.out.println(dataInputStream.readUTF());
		dataInputStream.close();
	}
}
package everyworkdayprogramming._2015_2_06;

public class Member {
	private String name;
	private int age;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Member(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public Member() {
		super();
	}

}
package everyworkdayprogramming._2015_2_09;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOError;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;

public class Java_2_9 {
	/**
	 *
	 * 实现一个包装类,让读出的每一行自动加上行号和:号
	 *
	 * @throws FileNotFoundException
	 *
	 * */

	public static void main(String[] args) throws Exception {
		File file = new File("d:" + File.separator + "hello2.txt");
		Test read = new Test(new InputStreamReader(new FileInputStream(file)));
		File file2 = new File("d:" + File.separator + "hello22.txt");
		PrintWriter printWriter = new PrintWriter(file2);
		String tem ;
		while((tem=read.myReadLine())!=null){
			printWriter.println(tem);
		}
		read.close();
		printWriter.close();

		file.delete();
		file2.renameTo(file);
	}
}

class Test extends BufferedReader {
	private int lineNumber;

	public Test(Reader in) {
		super(in);
	}

	public String myReadLine() throws IOException {
		lineNumber++;
		String tme;
		if ((tme = super.readLine()) != null) {
			return lineNumber + ":" + tme;
		} else {
			return null;
		}
	}

}
package everyworkdayprogramming._2015_2_10;

import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Properties;
import java.util.Set;

public class Java_2_10 {
	/**
	 *
	 * 把Properties.txt中键为count的值改为100
	 *
	 * */
	public static void main(String[] args) throws Exception {
		FileInputStream fs = new FileInputStream("C:/Users/mpc/workspace/basicknowledge/src/everyworkdayprogramming/_2015_2_10/Properties.txt");
		Properties pp = new Properties();
		pp.load(fs);
		fs.close();

		System.out.println(pp.get("name"));
		Set<Object> set = pp.keySet();

		for (Object obj : set) {
			String s = (String) obj;
			if (s.equals("count")) {
				pp.setProperty(s, 100 + "");
			}
		}

		PrintWriter pw = new PrintWriter(new FileWriter("C:/Users/mpc/workspace/basicknowledge/src/everyworkdayprogramming/_2015_2_10/Properties.txt"), true);
		pp.list(pw);
		pw.close();
	}
}
package everyworkdayprogramming._2015_2_11;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Java_2_11 {
	/**
	 *
	 * 键盘输入转大写在控制台显示
	 *
	 * */
	public static void main(String[] args) throws Exception {
		BufferedReader bufferedReader = new BufferedReader(
				new InputStreamReader(System.in));
		PrintWriter printWriter = new PrintWriter(System.out, true);
		String line = null;
		while ((line = bufferedReader.readLine()) != null) {

			if (line.equals("break"))
				break;
			printWriter.println(line.toUpperCase());
		}
		bufferedReader.close();
		printWriter.close();
	}
}
package everyworkdayprogramming._2015_2_13;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Java_2_13 {
	/**
	 *
	 * 用字符缓冲流复制一张图片并记算花费时间.
	 *
	 * */
	public static void main(String[] args) throws Exception {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream(
				"d:result.png"));
		BufferedOutputStream out = new BufferedOutputStream(
				new FileOutputStream("d:result1.png"));
		long l1 = System.currentTimeMillis();
		byte[] bye = new byte[1024];
		int available = in.available();
		int i = 0;
		while ((in.read(bye)) != -1) {
			if (i < available / bye.length) {
				out.write(bye);
				out.flush();
				i++;
			} else {
				out.write(bye, 0, available % bye.length);
				out.flush();
			}
		}

		long l2 = System.currentTimeMillis();

		System.out.println(l2 - l1);
		in.close();
		out.close();
	}
}
package everyworkdayprogramming._2015_2_15;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;

public class Java_2_15 {
	/**
	 *
	 * 自己模拟BufferedReader对象
	 *
	 * */
	public static void main(String[] args) throws IOException {
		MyBufferedReader bufferedReader = new MyBufferedReader();
		bufferedReader.setReader(new InputStreamReader(System.in));
		System.out.println(bufferedReader.myReadLine());
		bufferedReader.myClose();
	}
}

class MyBufferedReader {
	private Reader reader;

	public Reader getReader() {
		return reader;
	}

	public void setReader(Reader reader) {
		this.reader = reader;
	}

	// 模拟一次读取一行数据的方法
	public String myReadLine() throws IOException {
		StringBuilder builder = new StringBuilder();
		int ch = 0;
		while ((ch = reader.read()) != -1) {
			if (ch == '\r') {
				continue;
			}
			if (ch == '\n') {
				return builder.toString();
			} else {
				builder.append((char) ch);
			}
		}

		// 没有换行的情况
		if (builder.length() > 0) {
			return builder.toString();
		}

		return null;

	}

	// 模拟关闭方法
	public void myClose() throws IOException {
		reader.close();
	}

}
时间: 2024-10-19 09:44:36

2015-2月的小程序们的相关文章

“匿名聊聊”作者谈如何打造现象级爆款小程序

前段时间小程序“匿名聊聊”刷爆了朋友圈,可惜后面被屏蔽了.作为第一款现象级呈现爆炸级传播的小程序它是如何做到的呢?我们就跟随“匿名聊聊”作者来聊聊如何打造现象级爆款小程序. 作为第一款现象级呈现爆炸级传播的小程序,“匿名聊聊”背后的公司:朋友印象是一家深耕社交产品的公司,创始人栗浩洋和魏志成两人都公开表示,这次的“匿名聊聊”是扔出的一个问路的石子,真正的生化武器和核弹还在后面. 被寄予厚望的小程序自今年1月上线以来,一直表现的冷冷清清.流量入口没有优先级的倾斜,用户获取提供的也是模糊搜索,即便微

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

马化腾IT领袖峰会力推,微信小程序即将迎来爆发拐点

3月25日,马化腾在2018中国(深圳)IT领袖峰会上发表了题为"数字中国的机遇与探索"的演讲.从"一纵"."一横"."一新"这三个角度解释了他对数字中国发展的理解. 马化腾认为,一纵就是技术和互联网.从互联网+或者+互联网,每个行业都在利用互联网信息技术进行改造和升级.新经济跟传统行业并不冲突,而是互补的,可以深度融合的:一横就是数字化从经济扩展到民生.政务等领域,横向发展到一定程度,就成为整个数字中国.比如交通.医疗.教育

小盟广告|小程序已自成生态体系,广告新趋势形成

今日凌晨,有"互联网女皇"之称的玛丽·米克尔发布消息称:微信+支付宝政务服务触达5亿用户,支付宝小程序总量超20万.而微信小游戏「跳一跳」曾在推出两周后达到1亿+日活,优衣库品牌小程序购买转化率高于行业约3倍,拼多多达到8900万+月活,同程艺龙旅游达到1.69亿+月活,微信小程序正从一个小程序开始,发展到庞大的小程序生态体系. 2019年4月28日,第三届AMIC小程序创新大会上小盟广告联合阿拉丁.广告门.知萌咨询发起国内首家小程序创新营销实验室,就目前小程序营销趋势与发展.小盟广告

微信小程序內測一個多月,項目師說它是個封鎖生態

小程序,最終就是 1M 以內的微信行使.從 9 月 21 日微信對外內測小程序起 ,重慶.佛山每到了星期六日都有一到兩場線下運動.當中多數都new balance得交上兩三百的入場門票費.這些拿到內測的項目師刻畫了一個和微信相同封鎖的小程序生態.就算一個多月以來,"程序員交友居住區"Github 上業已 有了不少小程序的發展用具 .但和蘋果行使商店的生意相同,小程序也有一套統統個人掌管的發展語言和發展用具.在一場發展者運動現場,居家B2B使用"匠物"的後端項目師趙啟

17年1月9日,小程序来了。深度解析2017微信公开课

时代与腾讯造就了张小龙,张小龙也造就了今天的腾讯.谁能想到,当年那个默默写FoxMail的男人,有朝一日可以成为中国互联网最拉风的人.我是一个开发者,我天然对这种代码起家,不善言辞,又略带文艺范儿的人有好感.特别是今天喊出了很多个"没有"后,我觉得说他最拉风,一点都不为过吧. 我的知乎专栏:小楼昨夜又秋风 首先,告诉大家的是,17年春节微信没有红包活动了~,把手机丢到角落去,好好陪家人过年吧. 微信相当高明的又打了支付宝一巴掌. 第一年推出红包,支付宝傻了. 第二年微信金色限时付费红包

张小龙宣布微信小程序1月9日发布,并回答了大家最关心的8个问题

2016 年 12 月 28 日,张小龙在微信公开课 PRO 版的会场上,宣布了微信小程序的正式发布时间. 微信小程序将于 2017 年 1 月 9 号正式上线. 同时他解释称,小程序就像PC时代的网站,不需要下载.安装,信息触手可及,用完即走,无需卸载. "小程序非常接近于PC时代的网站的服务,网站服务不同于公众号,它更直接.大家想象一下,把小程序看作是PC时代的网站的话可能更好理解."张小龙说. 张小龙表示,用户在一个产品中耗了多少时间,不是微信的考量目标.微信看重的是,产品能帮助

小程序1月9号将上线,官方详解七大能力

今天,张小龙在2017微信公开课PRO版上宣布微信小程序将于2017年1月9日正式在客户端上线. 在下午的分论坛上,微信官方首次对小程序的能力进行了全面解读,并在现场对小程序作了案例展示. 微信官方带来小程序能力解读 微信团队现场详解了微信小程序的能力,包括线下扫码.对话分享.消息通知.小程序切换.历史列表.公众号关联和搜索查找等7大功能.   线下扫码:用户可以在小程序中使用扫一扫. 对话分享:用户可以分享小程序或其中的任何一个页面给好友或群聊. 消息通知:商户可以发送模板消息给接受过服务的用

阿拉丁小程序生态课7月开课,解读小程序的“前世今生”

阿拉丁小程序生态课·北京站将于7月8日13:30-17:30在北京京粮大厦四层方糖小镇举行,开课前期工作正在紧锣密鼓筹备中.会务方透露,本次生态课将从小程序对O2O商业带来的变革.小程序未来的发展.以及小程序如何实现商业化等方面进行探讨.目前已邀约到多位早期小程序应用者以及在小程序上玩出花样的企业负责人进行现场交流. 众多与会行业大咖中有首个标杆微信小程序腾讯自选股小程序负责人张坤.京东到家产品总监练燕杰.险峰长青投资副总裁吴炳见.原极客公园CEO阿禅.花帮主创始人赵继强等,届时将围绕小程序商业