在java中将消息(存储在映射中)分成块
我有一个java代码来创建新消息在java中将消息(存储在映射中)分成块,java,Java,我有一个java代码来创建新消息 public boolean createNewMessage(Message m){ if(decider.newMessage(m)){ makeRoomForNewMessage(m.getSize()); if(m.getSize()> 1024){ //i need a code here } m.setTtl(this.msgTtl);
public boolean createNewMessage(Message m){
if(decider.newMessage(m)){
makeRoomForNewMessage(m.getSize());
if(m.getSize()> 1024){
//i need a code here
}
m.setTtl(this.msgTtl);
addToMessages(m, true);
findConnectionsForNewMessage(m, getHost());
return true;
}
return false;
}
我想设置一个条件,如果消息大小大于1024,即1MB,则将消息拆分为块,每个块大小小于1024
此外,区块还引用了原始消息。例如,我有一条大小为1910的消息M1
。我想要一个代码,将此消息拆分为多个块。这些块被引用为M11=1024
(M1的第一个块)和M12=886
。(M1的第二块)
任何可以实现上述功能的数据结构方法?您可以创建这种类型的类分割字符串
public class DividedString{
private final String text;
private final String[] dividedText;
public DividedString (String text){
this.text = text;
// code where you split the text using substring, maybe
}
public String getChunk(int i){
return dividedText[i];
}
// getter, setter,
}
创建一个像这样的地图
Map<String, List<String>> messageChunks = new Hashmap<>();
Map messageChunks=new Hashmap();
其中,第一个字符串是您的实际消息,字符串列表按顺序包含您的消息块
希望这有帮助。我们不会编写您的代码。你自己试试,如果不行,回来。什么是信息。你能把它分开吗。对于一个字符串,我将使用
message.substring(1024)
来获取Begging,使用相同的方法但不同的参数来获取以下文本。你只需要试试这个。我确实写了一些代码,但我感到困惑,没有为我工作。可能重复的@SamCle88这个使用外部文件来分割。但在我的例子中,所有的数据都是从地图和列表中存储和检索的。是的,我把这一个绑定起来了,但我使用的是地图而不是列表。两者都很好。但我面临的一个问题是,为一条消息执行一个。我想我应该在这个上面试一下。让我试试看,我不会让你这么做的。谢谢你的帮助。