gpt4 book ai didi

java - 迭代 HashMap 然后将整数写入文件

转载 作者:行者123 更新时间:2023-12-02 11:47:01 26 4
gpt4 key购买 nike

我已经尝试了很长一段时间来迭代 HashMap,然后将 HashMap 中的键写入文件。

这就是我一直在做的事情

HashMap<String,Integer> myHashMap = new Hashmap<String,Integer>();

myHashMap.put(aString,1)
myHashMap.put(bString,2)
myHashMap.put(cString,3)
//..

private void doStuff(){
try {
// Create new file
String path = "myCreatedTxt.txt";
File file = new File(path);

// If file doesn't exists, then create it
if (!file.exists()) {
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);

for (Map.Entry<String,Integer> dic : myHashMap.entrySet())
{
System.out.println(dic.getKey() + "/" + dic.getValue());
bw.write(dic.getKey()+"");
}

// Close connection
bw.close();
} catch (IOException x) {
System.out.println(x);
}
}

但是当调用 doStuff() 时,虽然创建了一个名为 myCreatedTxT 的文件,但它是空的。

我期望得到如下结果:

---myCreatedFile.txt 里面---
1 11 4 2 5 6 7

在某种程度上,我之前尝试过,只能在文件上写入一个 key ,但这还不够,因为我需要每个 key 。

我想听听一些建议或解释

谢谢。

P.S 当然,doStuff() 在程序中的某个地方的 finally{} block 中被调用。

最佳答案

我为此示例创建了 Writer 类:

public class Writer {
private Map<String, Integer> myHashMap;

public Writer() {
myHashMap = new HashMap<>();

myHashMap.put("a", 1);
myHashMap.put("b", 2);
myHashMap.put("c", 3);
}


public void doStuff() {
try {
// Create new file
final String path = "myCreatedTxt.txt";
File file = new File(path);

// If file doesn't exists, then create it
if (!file.exists()) {
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);


myHashMap.entrySet().forEach(x -> {
try {
bw.write(x.getKey() + " ");
} catch (IOException e) {
System.out.println("error accord");
}
});

// Close connection
bw.close();
} catch (IOException x) {
System.out.println(x);
}
}
}

并从我的 main 类调用它:

public class Main {
public static void main(String[] args) {
Writer writer = new Writer();

writer.doStuff();
}
}

我的输出文件看起来完全像这样:

a b c

这应该可以完成工作

关于java - 迭代 HashMap 然后将整数写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48128901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com