C#如何获取独立存储的存储区

C#如何获取独立存储的存储区,第1张

存储区公开数据舱中的虚文件系统。IsolatedStorageFile 提供了许多与存储区进行交互的方法。要创建和检索存储区,IsolatedStorageFile 提供了三种静态方法。调用 GetUserStoreForAssembly 或GetUserStoreForDomain 分别返回按用户和程序集隔离及按用户、域和程序集隔离的存储。这两种方法检索属于代码块(是从该代码块中调用这两种方法的)的存储区。静态方法 GetStore 返回独立存储区,该存储区是通过传入范围参数组合指定的。下面的参数返回一个按用户、程序集和域隔离的存储区。 GetStore(IsolatedStorageScopeUser | IsolatedStorageScopeAssembly | IsolatedStorageScopeDomain, null, null);GetStore 方法可以用于指定存储区应该和漫游用户配置文件一起漫游。有关如何对此进行设置的详细信息,请参见独立存储和漫游。默认情况下,从不同的程序集中获得的独立存储区是不同的。您可以访问不同程序集或域的存储区,方法是传入不同的程序集或域证据作为 GetStore 方法的最后两个参数。这需要访问按应用程序域标识隔离的独立存储的权限。有关更多信息,请参见 GetStore 方法。有关程序集的更多信息,请参见程序集。三种方法中的每种方法都返回 IsolatedStorageFile 对象。要帮助您确定哪种隔离类型最适合您的情况,请参见隔离的类型。一旦具有了独立存储文件对象之后,您便可以使用独立存储方法来读取、写入、创建和删除文件及文件目录了。

安装好redis,进行了基本的 *** 作。包括对map list 和自定义对象的基本 *** 作。笔记都在代码注释里,直接上代码。

private Jedis jedis;

@Before

public void before() {

jedis = new Jedis("127001");

}

/

简单添加

/

@Test

public void test1() {

String name = "name";

String value = "qq";

jedisset(name, value);

Systemoutprintln("追加前:" + jedisget(name)); // 追加前:qq

// 在原有值得基础上添加,如若之前没有该key,则导入该key

jedisappend(name, "ww");

Systemoutprintln("追加后:" + jedisget(name)); // 追加后:qqww

jedisappend("id", "ee");

Systemoutprintln("没此key:" + jedisget(name));

Systemoutprintln("get此key:" + jedisget("id"));

}

/

mset 是设置多个key-value值 参数(key1,value1,key2,value2,,keyn,valuen) mget

是获取多个key所对应的value值 参数(key1,key2,key3,,keyn) 返回的是个list

/

@Test

public void test2() {

jedismset("name1", "aa", "name2", "bb", "name3", "cc");

Systemoutprintln(jedismget("name1", "name2", "name3"));

}

/

map

/

@Test

public void test3() {

Map<String, String> map = new HashMap<String, String>();

mapput("name", "fujianchao");

mapput("password", "123");

mapput("age", "12");

// 存入一个map

jedishmset("user", map);

// map key的个数

Systemoutprintln("map的key的个数" + jedishlen("user"));

// map key

Systemoutprintln("map的key" + jedishkeys("user"));

// map value

Systemoutprintln("map的value" + jedishvals("user"));

// (String key, String fields)返回值是一个list

List<String> list = jedishmget("user", "age", "name");

Systemoutprintln("redis中key的各个 fields值:"

+ jedishmget("user", "age", "name") + listsize());

// 删除map中的某一个键 的值 password

// 当然 (key, fields) 也可以是多个fields

jedishdel("user", "age");

Systemoutprintln("删除后map的key" + jedishkeys("user"));

}

/

list

/

@Test

public void test4() {

jedislpush("list", "aa");

jedislpush("list", "bb");

jedislpush("list", "cc");

Systemoutprintln(jedislrange("list", 0, -1));

Systemoutprintln(jedislrange("list", 0, 1));

Systemoutprintln(jedislpop("list")); // 栈顶

jedisdel("list");

}

/

自定义对象 User为例 id name

RedisTemplate 中有 序列化和反序列化

如:templategetStringSerializer()serialize("name")

/

@Test

public void test5() {

User user = new User();

usersetId(123);

usersetName("fighter");

// 存入一个 user对象

jedisset("user"getBytes(), SerializationUtilserialize(user));

// 获取

byte[] bs = jedisget("user"getBytes());

User desUser = (User) SerializationUtildeserialize(bs);

Systemoutprintln(desUsergetId() + ":" + desUsergetName());

}

对于自定义对象,需要进行序列化和反序列化:我这里提取出了一个工具类,

SerializationUtiljava

/

序列化就是将一个对象转换为二进制的数据流。这样就可以进行传输,或者保存到文件中。如果一个类的对象要想实现序列化,就必须实现serializable接口。在此接口中没有任何的方法,此接口只是作为一个标识,表示本类的对象具备了序列化的能力而已。

反序列化:将二进制数据流转换成相应的对象。

如果想要完成对象的序列化,则还要依靠ObjectOutputStream和ObjectInputStream,前者属于序列化 *** 作,而后者属于反序列化 *** 作。

/

import javaioByteArrayInputStream;

import javaioByteArrayOutputStream;

import javaioObjectInputStream;

import javaioObjectOutputStream;

public class SerializationUtil {

/

序列化

@param object

@return

/

public static byte[] serialize(Object object) {

ObjectOutputStream oos = null;

ByteArrayOutputStream baos = null;

try {

baos = new ByteArrayOutputStream();

oos = new ObjectOutputStream(baos);

ooswriteObject(object);

byte[] bytes = baostoByteArray();

return bytes;

} catch (Exception e) {

}

return null;

}

/

反序列化

@param bytes

@return

/

public static Object deserialize(byte[] bytes) {

ByteArrayInputStream bais = null;

try {

bais = new ByteArrayInputStream(bytes);

ObjectInputStream ois = new ObjectInputStream(bais);

return oisreadObject();

} catch (Exception e) {

}

return null;

}

}

还有都熟悉的User类。我只简单实用id和name,测试,也贴一下吧

public class User implements Serializable {

/

/

private static final long serialVersionUID = -1530813282496676263L;

private Integer id;

private String name;

public Integer getId() {

return id;

}

public void setId(Integer id) {

thisid = id;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

以上就是关于C#如何获取独立存储的存储区全部的内容,包括:C#如何获取独立存储的存储区、jedis 怎么获取存储的对象、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9398444.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存