跨平台

Java中写入文件时换行符用"\\r\\n"、"\\n"、"\\r"?

我是研究僧i 提交于 2020-03-13 02:01:43
Java是一个跨平台的语言,因为如果想写一个跨平台的软件,有些东西就需要考虑,例如换行。 \r: 叫回车 C arriage R eturn \n: 叫新行 N ew L ine 他们都会造成换行,那么我们如何确定使用哪个呢? 通常建议使用line.separator的系统属性 System.getProperty("line.separator") 来获取当前OS的换行符,可以在调试的情况下看到! 不过如果你是在写一个网络程序或者服务器程序,则需要硬编码为"\r\n",而不管所选的平台。 各平台对应的换行符如下: \r: Mac \n: Unix/Linux \r\n: Windows或Http \u2028: Unicode标准 这种输出的主要表现在 用notepad打开 时的显示。使用 其他编辑器 则没有明显变化!! 在winodws下,如果用"\n",则会显示成如下: 如果使用"\r\n",则会显示出换行的效果: 来源: https://www.cnblogs.com/xjqlove1989/p/4312840.html

x01.weiqi: 跨平台 python 实现

て烟熏妆下的殇ゞ 提交于 2020-03-10 17:28:39
大多数时间,都在使用 deepin 系统,原来的 WPF 实现似乎越来越遥远了。这几天在家学习了一下 tkinter,顺便予以重写。 内在逻辑是一样的,就不重复,但具体实现层面,如图像不能改变大小等不一而足。由于 AI 出现,再去探讨怎么落子已变得毫无意义,所以只实现了最基本的吃子,打劫,倒扑,悔棋功能。 main.py 代码如下: import os, sys, enum import tkinter as tk from core import Board CurrDir = os.path.dirname(__file__) sys.path.append(CurrDir) class App(tk.Tk): def __init__(self): super().__init__() board = Board(self) board.pack() self.geometry('{}x{}+300+50'.format(board.w,board.h)) if __name__ == "__main__": App().mainloop() main.py core.py 代码如下: import os import tkinter as tk import tkinter.ttk as ttk CurrDir = os.path.dirname(__file__)

ASP.NET C# 跨平台开发 Windows Linux OSX

风流意气都作罢 提交于 2020-03-06 13:38:58
在本周热点中有一条是"TIOBE编程语言排行榜,Java 重回榜首", 使用Java语言的一个最大好处是可以到处移植,特别在今天这个到处是云主机的时代,而云主机基本上跑的是Linux等类Unix系统,C#用户突然发现最近两年网络上的各种新玩具都与ASP.NET无关,ASP.NET当然也意识到这点,搞了个ASP.NET vNext (ASP.NET 5)进行跨平台设计,它的跨平台层采用的是Mono,其实Mono一直在提供ASP.NET的跨平台方案,在ASP.NET 5还不清楚什么时候稳定时,可以先直接采用Mono进行跨平台开发,并且C#用户可以使用它先尝试下最近两年各种网络新玩具,其中大部分是免费试用的。 先上图,在Mac OS X上跑的 ASP.NET 4,使用的是 iBoxDB NoSQL数据库 ,比 Mono 提供的SQL跨平台方案更方便。 下面是同一个开发包在 Linux Ubuntu 上的详细使用介绍,直接使用在线IDE这个新工具说明操作流程,以前写篇文章要打开对应的操作系统,再启用本地IDE,整个过程要几分钟,使用在线IDE,点击一下网址就可以可以使用了,除了整个大系统的开发,基本上普通演示,普通代码测试都可以使用。 来源: oschina 链接: https://my.oschina.net/u/614982/blog/403500

一款易搭建,运行快的Git服务器:Gitea安装教程

旧城冷巷雨未停 提交于 2020-03-04 07:15:22
说明:Gitea是从Gogs发展而来,同样的拥有极易安装,运行快速的特点,而且更新比Gogs频繁很多,维护的人也多,个人认为Gitea还是更好一些的,这里就说下安装方法。 截图 简介 Gitea是一个极易安装,运行非常快速,安装和使用体验良好的自建Git服务。采用Go作为后端语言,这使得只要生成一个可执行程序即可。并且他还支持跨平台,支持Linux、macOS和Windows以及各种架构,除了x86,amd64,还包括ARM和 PowerPC。 Github地址: https://github.com/go-gitea/gitea 功能 支持活动时间线 支持SSH以及HTTP/HTTPS协议 支持SMTP、LDAP和反向代理的用户认证 支持反向代理子路径 支持用户、组织和仓库管理系统 支持添加和删除仓库协作者 支持仓库和组织级别Web钩子(包括Slack集成) 支持仓库Git钩子和部署密钥 支持仓库工单(Issue)、合并请求(Pull Request)以及Wiki 支持迁移和镜像仓库以及它的Wiki 支持在线编辑仓库文件和Wiki 支持自定义源的Gravatar和Federated Avatar 支持邮件服务 支持后台管理面板 支持MySQL、PostgreSQL、SQLite3、MSSQL和TiDB(实验性支持)数据库 支持多语言本地化(21种语言) 二进制安装 1、安装

如何设计一款跨平台低延迟的RTMP/RTSP直播播放器

本秂侑毒 提交于 2020-03-01 21:00:07
开发背景 很多音视频开发者问我们,为什么要做这块,实际上是这样的,2015年,当我们试图在市面上找一款专供直播播放使用的低延迟播放器,来配合测试我们的RTMP推送模块使用时,居然发现没有一款好用的,市面上的,如VLC或Vitamio,说白了都是基于FFMPEG,在点播这块支持格式很多,也非常优异,但是直播这块,特别是RTMP,延迟要几秒钟,对如纯音频、纯视频播放,快速启播、网络异常状态处理、集成复杂度等各方面,支持非常差,而且因为功能强大,bug很多,除了行业内资深的开发者能驾驭,好多开发者甚至连编译整体环境,都要耗费很大的精力。 我们的直播播放器,始于Windows平台,Android和iOS同步开发,基于上述开源播放器的各种缺点,我们考虑全自研框架,确保整体设计跨平台,再保障播放流程度的前提下,尽可能的做到毫秒级延迟,接口设计三个平台统一化,确保多平台集成复杂度降到最低。 整体方案架构 RTMP或RTSP直播播放器,目标很明确,从RTMP服务器(自建服务器或CDN)或RTSP服务器(或NVR/IPC/编码器等)拉取流数据,完成数据解析、解码、音视频数据同步、绘制。 具体对应下图 “接收端” 部分: 初期模块设计目标 自有框架,易于扩展,自适应算法让延迟更低、解码绘制效率更高; 支持各种异常网络状态处理,如断网重连、网络抖动等控制; 有Event状态回调

electron-vue跨平台桌面应用开发实战教程(九)——集成sqlite3

时光总嘲笑我的痴心妄想 提交于 2020-03-01 20:13:30
本文主要讲解集成及使用sqlite3 在开始之前,同样需要安装node-gyp和windows-build-tools,具体安装方法请参照: https://blog.csdn.net/David1025/article/details/104461723 1. 安装sqlite3依赖 npm install sqlite3 --save 安装完成之后,需要再运行一下(否则会出现找不到sqlite3.node) npm install 2.使用 // src/renderer/utils/db.js // 建表脚本,导出db对象供之后使用 import sq3 from 'sqlite3' const pathUtil = require('../utils/pathUtil.js') // import { docDir } from './settings'; // 将数据存至系统用户目录,防止用户误删程序 export const dbPath = pathUtil.getAppResourcePath('db/data.sqlite1') const sqlite3 = sq3.verbose() const db = new sqlite3.Database(dbPath) // 初始化 db.serialize(() => { db.run('create table

使用Phonegap/Cordova编写跨平台(Android/iOS)应用 (2) -- iOS篇

随声附和 提交于 2020-03-01 02:38:00
1. 先在xCode上安装 Command Line Tool. 具体可以在 Preference -> Downloads -> Components -> Command Line Tools. 选择并安装即可。 2. 如果你的terminal不能运行 npm,那先得安装 Node.js。 http://nodejs.org/download/ 要下载 "Macintosh Installer (node-v0.10.29.pkg)". 不要下载“Mac OS X Installer (.pkg) Universal”,因为这个包会报“No software to be installed”的错。 3. 在命令行terminal利用 npm安装 Cordova sudo npm install -g cordova 4. 开始建立第一个Hello的应用: $ cordova create hello com.example.hello HelloWorld -d -d 是为了在过程中能输出信息。 之后,在你运行上面这条命令的路径下,就会建立一个"hello"的目录。在hello目录下有一个 "www"的目录,将是你应用的hompage的目录。 执行命令,为hello添加iOS的平台支持 $ cordova platform add ios 执行成功后,在 hello

golang跨平台设置系统时间

微笑、不失礼 提交于 2020-02-28 06:26:50
调用阿里云很多golang接口,如果本地时间不对,就会导致接口调度异常。 golang版设置系统时间函数: ```golang //2020-1-1 16:55:51 格式 func UpdateSystemDate ( dateTime string ) bool { system := runtime . GOOS switch system { case "windows" : { _ , err1 := gproc . ShellExec ( `date ` + gstr . Split ( dateTime , " " )[ 0 ]) _ , err2 := gproc . ShellExec ( `time ` + gstr . Split ( dateTime , " " )[ 1 ]) if err1 != nil && err2 != nil { glog . Info ( " 更新系统时间错误 : 请用管理员身份启动程序 !" ) return false } return true break } case "linux" : { _ , err1 := gproc . ShellExec ( `date -s "` + dateTime + `"` ) if err1 != nil { glog . Info ( " 更新系统时间错误 :" , err1 .

Git跨平台中文乱码临时解决方案

孤人 提交于 2020-02-27 12:29:06
转自 http://blog.csdn.net/yang_hui1986527/article/details/6891319 Git 是一个非常优秀的分布式版本控制系统,最初为Linux Kernel版本管理进行量身定做。优点是,和其他版本控制系统相比,稳定,速度快,跨平台,易学易用,无需要花费成本。更多优点请点击阅读: http://whygitisbetterthanx.com/ 缺点也有点明显,那就是由于该版本控制系统专门为Linux 内核定制,没有开发其他平台的版本,因此,在其他平台上使用的都是Git的移植版本。在Windows上使用Git,通常是msysGit 和 TortoiseGit 进行组合使用。在Windows系统下Git的使用过程中,我们发现,如果出现以下情况之一,可能出现乱码: 1、Log提交时使用中文注释 2、目录或者文件名含有中文 3、代码中含有中文注释 这些问题在跨平台使用的时候极为明显,给跨平台代码管理带来极大的不便。本人也是深受其害,希望官方能够早日开发跨平台的版本,解决掉乱码问题。 经过本人实践,总结了一套临时解决方案,暂时能够解决以上乱码问题。具体操作如下: 注:由于Linux上通常使用utf-8进行编码,因此,项目管理中统一使用utf-8进行编码。 一、下载并安装msysGit和TortoiseGit msysGit :http://utf8

java第一次学习总结

对着背影说爱祢 提交于 2020-02-26 16:20:20
[1] 学习了java的历史 Java的核心优势: 跨平台。跨平台是靠JVM(虚拟机)实现的。 Java各版本的含义: JavaSE(Java Standard Edition)标准版,定位在个人计算机的应用。 JavaEE(Java Enterprise Edition)企业版,定位在服务器端的应用。 JavaME(Java Micro Edition)微型版,定位在消费电子产品的应用。 [2] 了解到了java中javaEE是目前应用最好的一块 [3] 学习到了java的可移植性非常强 [4] 学习了java编译到用于操作系统的步骤 [5] 学习了5个常用的DOS命令 cd是进入一个目录、cd…是进入父目录、dir是查看本目录下的文件和子目录列表、cls是消除屏幕命令、上下键是查看敲过的命令、tab是自动补齐命令 [6] 练习了用java做一个会动地桌球游戏的代码,并且从中学到了 import java.awt .*; import javax.swing.*; 第一个是用来带入图片,第二个是调整窗口大小和位置。 [7] 学习了局部变量、成员变量、静态变量的基本命名规范 [8] 学习到了final让变量变为常量 [9] 学习了数据类型的分类 来源: CSDN 作者: justzg 链接: https://blog.csdn.net/justzg/article/details