我曾经从文本文件中RandomAccessFile读取过byte.
public static void readFile(RandomAccessFile fr) {
byte[] cbuff = new byte[1];
fr.read(cbuff,0,1);
System.out.println(new String(cbuff));
}
Run Code Online (Sandbox Code Playgroud)
为什么我看到一个完整的角色被这个阅读?
对于我来说,这个问题在很多不同的场合都有所提升,但如果没有给出具体的例子,很难解释.所以这里:
让我们想象一下,我们正在PHP/MySQL中创建一个问题跟踪器数据库.有一个"任务"表.现在,您需要跟踪与特定任务相关联的人员(已评论或未评论).当任务发生变化时,这些人将收到电子邮件.
有两种方法可以解决这种情况.一种是创建一个单独的表tasks_participants:
CREATE TABLE IF NOT EXISTS `task_participants` (
`task_id` int(10) unsigned NOT NULL,
`person_id` int(10) unsigned NOT NULL,
UNIQUE KEY `task_id_person_id` (`task_id`,`person_id`)
);
Run Code Online (Sandbox Code Playgroud)
并查询此表SELECT person_id WHERE task_id='XXX'.
如果有5000个任务,每个任务平均有4个参与者(记者,任务带来的主题,求解者和一个评论者)那么task_participants表将是5000*4 = 20 000行.
还有另一种方法:在tasks表中创建一个字段并存储person_id的序列化数组(JSON或PHP serialize()).然后就不需要这个20 000行的表.
你有什么评论,你会走哪条路?
有没有办法指定dns服务器应该由socket.gethostbyaddr()使用?
所以我们正在构建一个带有 html5 播放器(以及 Windows 的备份 Flash)的视频网站。
但真正让我困惑的是,当我在 Firefox 中查看这个文件时,它会播放; http://www.roguefilms.com.local/media/uploads/2010/07/1495/8_lg-poke.mov(本地存储)但是当它在html视频标签中时什么也不做。它显示海报但不播放视频。它甚至没有显示“抱歉 - 您的浏览器不受支持!”
我知道 ff 更喜欢 ogg,我们可以使用闪存备份播放器,但如果它可以在没有播放器的情况下将其作为 ht64 .mov 播放,为什么不能呢?看起来有点蠢?
如果有人知道任何事情那就太好了...
<video controls="controls"
id="myVideo"
src="/media/uploads/2010/07/1495/8_lg-poke.mov"
poster="/media/uploads/2010/07/1495/still.jpg"
height="360"
width="640">
Sorry - your browser is not supported!
</video>
Run Code Online (Sandbox Code Playgroud)
最好的,丹。
我正在尝试使用Zend Framework编写一个简单的安装脚本.它应该运行一些测试:
user数据库中是否存在调用的表如果任何步骤失败,控制器将负责将用户重定向到安装过程的正确步骤.
我用以下代码创建了一个模型:
public function verify () {
$db = $this->getDefaultAdapter(); //throws exception
if ($db == null) return self::NO_BATABASE;
$result = $db->describeTable('user'); //throws exception
if (empty($result)) return self::NO_USER;
$result = $db->fetchRow('SELECT * FROM user WHERE id = 1');
if ($result == null) return self::USER_EMPTY;
else return self::OK;
}
Run Code Online (Sandbox Code Playgroud)
但是,我高估了我使用过的功能.getDefaultAdapter()可能会返回null,但如果没有要连接的数据库,则会抛出异常.同样的情况发生describeTable(),抛出异常而不是返回一个空数组.
因此,我的问题是:如何检查数据库/表是否存在而不会出现异常或错误?
我以前用TDD编写C#编码 - 编写/或更改一小段代码,在10秒内重新编译整个解决方案,重新运行测试.简单...
这种开发方法对我来说非常有效,但直到去年我不得不重新使用C++编码,而且我觉得自那时以来我的工作效率已大大降低.C++作为一种语言不是问题 - 我有很多C++开发经验......但在过去.
对于小型项目,我的工作效率仍然可以,但随着项目规模的增加,它会变得更糟,一旦编译时间超过10分钟就变得非常糟糕.如果我发现错误,我必须再次开始编译,等等.这简直令人沮丧.
因此我得出结论,在一小块(如前所述)是不可接受的 - 任何建议如何让我自己进入编码一小时左右的旧习惯,手动查看代码(不依赖于快速的C#编译器) ,并且只在几个小时内重新编译/重新运行一次单元测试.
使用C#和TDD,以渐进的方式编写代码非常容易 - 经过十几次迭代后,我开始使用的任何废话都以一个好的代码结束,但它对我来说不再适用(在慢速编译中)环境).
非常感谢您的投入和回忆.
ps不确定如何标记问题 - 欢迎任何人重新标记问题.
干杯.
我正在尝试编写以下代码:
public const Size ImageSize = new Size() { Width = 28, Height = 28 };
Run Code Online (Sandbox Code Playgroud)
但我得到的错误Width,并Height是只读的.
建议的方法是什么?
我目前正在尝试制作一个CUDA代码,其中一个类将仅用于设备端(即主机不需要知道它的存在).但是我无法计算出类的正确限定符(deviceclass如下):
__device__ float devicefunction (float *x) {return x[0]+x[1];}
class deviceclass {
private:
float _a;
public:
deviceclass(float *x) {_a = devicefunction(x);}
float getvalue () {return _a;}
};
// Device code
__global__ void VecInit(float* A, int N)
{
int i = blockDim.x * blockIdx.x + threadIdx.x;
if (i < N) {
deviceclass *test;
test = new deviceclass(1.0, 2.0);
A[i] = test->getvalue();
}
}
// Standard CUDA guff below: Variables
float *h_A, *d_A;
// Host code
int main(int argc, char** argv) …Run Code Online (Sandbox Code Playgroud) 可能重复:
char*str ="STRING"和char str [] ="STRING"之间的区别?
C:指针和数组之间的差异
嗨,
谁能告诉我下面的陈述之间的区别?
char *p = "This is a test";
char a[] = "This is a test";
Run Code Online (Sandbox Code Playgroud) 我是Hibernate的新手,每次遇到Hibernate教程时都会提到HibernateUtil类?
它实际上做了什么?如果有一个标准的实现,为什么它不包含在Hibernate jar本身?