小编Bit*_*g3r的帖子

相当于InputStream或Reader的Files.readAllLines()?

我有一个文件,我通过以下方法读入List:

List<String> doc = java.nio.file.Files.readAllLines(new File("/path/to/src/resources/citylist.csv").toPath(), StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)

是否有任何好的(单行)Java 7/8/nio2方法可以使用可执行Jar内的文件(并且可能必须使用InputStream读取)来实现相同的功能?也许是通过类加载器打开InputStream的方法,然后以某种方式强制/转换/将其包装到Path对象中?或者是一些包含与File.readAllLines(...)等效的InputStream或Reader的新子类?

我知道我可以用半页代码中的传统方式,或者通过一些外部库来实现......但在此之前,我想确保最近发布的Java不能"开箱即用" ".

java jar nio2

39
推荐指数
2
解决办法
2万
查看次数

适用于Android的Android SSO(单点登录)

是否有适用于Android的免费单点登录机制,可以优雅地与非webapps一起使用?说,有些东西......

  1. 您启动我的应用程序并使用它,直到它从需要身份验证的应用服务器发出请求.它使用随机令牌响应该请求,服务器将在短时间内与您关联.

  2. 该应用程序为您提供用户名字段,密码字段和提交按钮.

  3. 您输入用户名和密码.然后,应用程序将您的用户名和哈希密码以及应用服务器生成的令牌转发到登录服务.

  4. 登录服务确定您的用户名和密码是否有效.如果是,则以数字方式为令牌添加时间戳并签名,并将签名后的令牌返回给应用程序.

  5. 该应用程序将签名的令牌中继到服务器.

  6. 服务器检查签名,满足自己的有效性,并由其信任的权限签名,并继续进行,就像用户向IT部门提供了有效的本地用户名和密码一样.

我怀疑我只是迷失在命名法中,但到目前为止我得到的印象是所有常见的SSO提供商 - Twitter,Facebook等 - 只允许用户使用普通浏览器登录,而你"或者不允许做我描述的事情,或者他们做了一些事情,除了普通的浏览器之外的其他任何事情都有效地实现它(比如通过Javascript动态创建登录表单以防止开发人员尝试使用他们自己的应用程序作为登录门面).

或者,是否存在像这样的工作流程......

  1. 您启动我的应用程序并使用它直到Web服务要求您登录.应用服务器生成令牌并将其返回给应用程序.

  2. 该应用程序通过intent生成一个新的浏览器,将您发送到登录提供商的网站,通过意图将令牌传递给浏览器(最终提供者)作为POSTed formvar.

  3. 您使用浏览器窗口登录,浏览器窗口关闭 - 返回我的应用程序.

  4. 登录提供程序签署令牌,然后通过HTTP POST将其直接发送到我的应用服务器,这样我就可以记下它的提交,验证证书,并将其视为用户直接提交给应用程序的有效用户名和密码服务器本人.

android single-sign-on

15
推荐指数
1
解决办法
2万
查看次数

Jellybean 4.2是否有意图连接到已定义的VPN?

(修改后的...现在我正在运行JB,并且仍然遇到了一年多前我遇到的同样的问题)

我在我的Xoom和Galaxy S3(CM10.1)上安装了Jellybean(4.2),并且我正在尝试编写一个Tasker插件,以便在wi-fi连接变为活动状态时自动连接到PPTP或L2TP VPN.

与之前版本的Android不同,ICS最终允许使用保存的用户名和密码定义VPN,因此看起来基本上所有内容都支持新的公共意图,即"尝试连接到$ {vpn}".但是,如果存在这样的意图,我还没有找到任何文件.有人可以指点我正确的方向吗?(包名,搜索的魔术短语等)?

vpn android android-intent android-4.0-ice-cream-sandwich

6
推荐指数
1
解决办法
1192
查看次数

没有可用数据连接的Google Cloud Messaging

Google云消息传递是否可以向能够接收语音呼叫和短信的手机提供"零字节有效负载"通知,但无论出于何种原因,目前还没有可用的数据连接?

通过"零字节",我的意思是电话将意识到特定发送者向其发送了没有有效载荷的GCM通知,并且可以触发该意图.

真实世界的例子:一个窃贼警报被触发,并向房主发送两个推送消息 - 一个零字节消息,其含义完全隐含于它完全被发送的事实,暗示"发生了一些不好的事情",并且即使数据连接被阻止或不可用也可以(可能)被传送,因为它(可能)骑在用于SMS的相同传输层上,并且几秒钟之后发送更长的推送通知,其中包含关于可能仅有的情况的附加元信息如果此时有工作数据连接,则工作(这样可以通知电话,并在建立传统数据会话后从服务器获取有效负载).

我已经阅读了Google的文档,但似乎他们故意向后倾斜,对GCM的物理传输层一无所知.

android google-cloud-messaging

5
推荐指数
1
解决办法
1039
查看次数

如何让一个git分支成为新的master?

几天前,我使用以下命令创建了一个新的 git 分支:

git checkout -b release-1_5
Run Code Online (Sandbox Code Playgroud)

自从创建该新分支以来,我对其进行了额外的更改和提交。

我是唯一的开发人员,在此期间没有对实际的“主人”进行任何更改。我想将“release-1_5”分支的当前状态设置为新的主分支,并将“master”设置为新的工作(HEAD?)分支,这样如果我稍后执行以下操作:

git checkout -b release-1_6
Run Code Online (Sandbox Code Playgroud)

它将创建一个从 master 分支出来的新分支

我知道我可能可以继续执行“git checkout -b {new-branch-name}”(创建一个线性分支分支(-of-a-branch[-...]),但我'我非常确定这会搞乱 Git 类似地铁的分支图。

如果重要的话,目前,存储库完全是本地的,因此无需担心拉/推或来源。

git git-branch

3
推荐指数
1
解决办法
5456
查看次数

"静态"startActivity(Intent)方法?

我有一个按钮.它的View.OnClickHandler实现类实例化了大约3个构造函数,这些构造函数来自对android.app.Activity对象的最近引用.单击时,我希望它打开位置设置面板,以便用户可以通过启动Settings.ACTION_LOCATION_SOURCE_SETTINGS意图来启用GPS和/或基于网络的位置.

混淆地将那个父Activity对象从构造函数传递给构造函数到构造函数,所以我的onClick()方法可以看到它,有没有办法直接进入隐喻的静态以太和尖叫,"嘿,Android ......启动Settings.ACTION_LOCATION_SOURCE_SETTINGS"而不必有一个实际的活动对象方便用于其startActivity方法?

android

2
推荐指数
1
解决办法
2万
查看次数

如何在 Unity 中使用 C# 解析复杂的 JSON 对象

^--- 对于该问题只是重复的断言的反驳,请参阅底部的注释。

剧透:根据 carldevelopsforcoffee 已接受的有效答案,请参阅问题底部的最终代码。

原问题:

我正在尝试使用 UnityEngine.JsonUtility.FromJson() 在 Unity 中使用 C#(2018.1,VS2015,如果重要)解析复杂的 JSON 文件(见下文)。下面列出了解析器代码。

顶级变量(sweepIndex、totalRadial 等)都可以很好地解析到 Sweep 对象中,但 'radials' 数组似乎被跳过了(Sweep 中的 Radial 对象列表最终为空)。

如果从 JSON 中看不出来,它具有以下结构:

  • 具有 13 个简单值和径向对象数组的顶级“扫描”对象。

  • List 中的每个 Radial 对象都有 4 个简单值和一个双精度数组

格式化 JSON 以说明结构:

(为了清晰起见进行了编辑和截断……完整的 JSON 是下面类中的字符串)

{"sweepIndex":0,
"totalRadials":720,
"beamWidth":0.949999988079071,
"startingUnixtime":1536864392000,
"endingUnixtime":1536863574000,
"totalGatesPerRay":1832,
"gateDepthMeters":250.0,
"distanceToFirstGateMeters":2125.0,
"meanElevationDeg":0.5275726318359375,
"originLatitude":33.989444444444445,
"originLongitude":-78.42888888888889,
"originAltitude":20.0,
"deviantOriginCount":0,
"radials": [
    {"radialNumber":0,"azimuthDeg":263.21319580078125,"elevationDeg":0.53009033203125,"duration":66521592,
        "gateIntensity":[-5.5,-1.0,1.0,3.0,13.5,-15.0,-13.0,-11.5,-10.5,-7.5]},
    {"radialNumber":1,"azimuthDeg":263.7432861328125,"elevationDeg":0.5328369140625,"duration":66521616,
        "gateIntensity":[-9.5,-1.0,-4.5,-2.5,5.0,-4.0,9.0,-8.5,-1.5,-9.0]}
]}
Run Code Online (Sandbox Code Playgroud)

我是生成 JSON 文件的人(使用 Netcdf-Java 吸入原始 2 级雷达数据并将其作为 JSON 输出供 Unity 应用程序使用),因此如果 JSON 极大地影响了我的生活,我可能会更改它更容易......但我真的更喜欢不大幅改变整体结构(带有双精度数组的径向对象数组的扫描对象)。

班上:

using System;
using System.Collections.Generic;
using …
Run Code Online (Sandbox Code Playgroud)

c# json unity-game-engine

2
推荐指数
1
解决办法
1万
查看次数

How to initialize class member variable char[][] in C++ constructor?

How do you declare and create a 2-dimensional array whose dimensions are constant and known at compile time, but are specified by literal const arguments to the constructor of the class that owns it?

For example...

Foo.h:

class Foo {
public:
    Foo(int rows, int cols);
private:
    int totalRows;
    int totalCols;
    char buf[4][20]; // I don't actually WANT to hardcode 4 and 20 here!
};
Run Code Online (Sandbox Code Playgroud)

Foo.cpp:

Foo::Foo(const int rows, const int cols) : totalRows(rows), totalCols(cols), buf(new char[rows][cols]) {}
Run Code Online (Sandbox Code Playgroud)

Main.cpp:

Foo myFoo(4,20); …
Run Code Online (Sandbox Code Playgroud)

c++ constructor multidimensional-array

2
推荐指数
1
解决办法
137
查看次数