【问题标题】:What format can be easly write in txtFile in java?java中的txt文件可以轻松写入什么格式?
【发布时间】:2016-03-04 14:31:48
【问题描述】:

我是 Java 新手。我很想知道,哪种格式最好写在文本文件中。

例如:

假设,我有一个 data.txt 文件,我可以在其中保存我的变量值。

food : 100,
play : 20,
money : 50,
sleep : 20,

所以,问题是:我怎样才能很好地使用这个文本格式?

我在谷歌上搜索,找到了解决方案 xml、json、Gson。问题是我不知道在 codeFile 中实现这个。 我想使用 JSON(文本是否变成这样)

{"Values": {
  "food": 100,
  "play": 20,
  "moeny": 300,
  }
}

但问题是:

1.) 它的外部库 - 对我来说不容易实现。

2.) 我的代码是可移植的 - 如果我在另一台 PC 上运行我的代码并且还会为 java 安装 json lib 吗?

还有一个问题:java中是否已经有其他格式可以使用?

【问题讨论】:

    标签: java json xml formatting gson


    【解决方案1】:

    格式良好是什么意思?您是否需要将这些数据发送到 Web 服务?数据库?

    1. 你知道 Maven 或 Gradle 吗?他们会为您处理依赖关系。
    2. 不,一旦你的代码被打包,它就会附带它需要的依赖项。
    3. 如果数据是那么简单的“字符串,整数”并且第一个字符串是唯一的,我会选择地图

    编辑:

    使用 HashMap 的简单示例(读/写):

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.regex.Pattern;
    
    public class MapScanner {
    
        public static void main(String[] args) throws IOException {
            //Reading entries
            Scanner scanner = new Scanner(new File("data"));
            scanner.useDelimiter(Pattern.compile(",(\n)?"));
    
            final Map<String, Integer> entries = new HashMap<>();
            while(scanner.hasNext()){
                final String entry = scanner.next();
                final String[] entrySplited = entry.split(":");
    
                entries.put(entrySplited[0].trim(), new Integer(entrySplited[1].trim()));
            }
    
            for(String key : entries.keySet()){
                System.out.println(key + " : " + entries.get(key));
            }
    
            scanner.close();
    
            //Adding a new entry in memory
            entries.put("pizza", new Integer(5));
    
            //Saving all entries in the data file
            try(BufferedWriter bw = new BufferedWriter(new FileWriter("data"))){
                for(String key : entries.keySet()){
                    bw.write(key + " : " + entries.get(key) + ",");
                    bw.flush();
                    bw.newLine();
                }   
            }
        }
    }
    

    打印出来:

    play : 20
    sleep : 20
    money : 50
    food : 100
    

    并且后面的文件等于:

    play : 20,
    sleep : 20,
    pizza : 5,
    money : 50,
    food : 100,
    

    【讨论】:

    • 如何使用地图?我在 txtFile 中只有字符串和整数。你能举个使用地图的小例子吗?
    • 您可以简单地从该文件中读取数据,然后进行一些字符串格式化并将您的数据放入地图中。例如,在逗号上使用 split 来分隔您的条目,然后在分号上使用 split 以获得您的地图的键和值
    • 我的意思是格式化或易于阅读。不,我不需要将该数据发送到 Web 服务。不,我不是在接收文件,我只是在创建文件并将我的值保存在该文件中。
    • @BenoitVanalderweireldt 我在谷歌地图上搜索并发现了一些新的搜索.. treemap 或 HashMap 怎么样?
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多