Java:读取,编辑和创建文本文件

时间:2013-11-16 15:52:50

标签: java file function text

我有一个创建Swords的Java程序。现在,我想将这些Swords的damagevalue和名称存储在文本文件中,以后能够读取这些值。最好的方法是什么?

我有两节课: Sword.javaNewSword.java,其中NewSword.java是创建新剑(o.O)的功能。这是代码:

Sword.java:

package game;

public class Sword {
    public static int numberOfSwords=0;

    public static void main(String [] args){
        functions.NewSword.newSword("Wooden Sword", 2);
        System.out.println(numberOfSwords);
    }
}

NewSword.java:

package functions;

public class NewSword {
        public static void newSword(String nameSword, int damageSword){
            game.Sword.numberOfSwords++;
        }
}

所以: 我希望能够在函数newSword(String nameSword, int damageSword)中将nameSworddamageSword放在一个文本文件中,并且能够阅读...以便我以后可以喜欢:“他有一把木剑,有什么损坏?”......我想把它放在一个文本文件中,因为我想知道它是如何工作的,并用它练习。此外,我认为如果我想为剑添加功能会更容易,并且可以将它们放在文本文件中...希望你能帮助我!

编辑:我把这个函数放在另一个包中,这就是为什么它是functions.NewSword.newSword("Wooden Sword", 2);,只是为了它的原因:D但也有点组织......

2 个答案:

答案 0 :(得分:2)

通读:http://www.tutorialspoint.com/java/java_files_io.htm 它解释了从创建文件到阅读文件的所有内容,并确保帮助您。

然而,kviiris对于学习面向对象编程的方法表示赞赏。 以下是剑的基本方法:

你为剑写了一个类,其中包含给定剑所需的所有信息。

public class Sword {
 private String name;
 private int damage;

 // this is the constructor to create new swords
 public Sword(String name, int damage){
  this.name = name;
  this.damage = damage;
 }
}

现在您可以从主类访问它并使用它来创建任意数量的剑,只需使用

Sword s = new Sword("wooden sword", 2);
Sword s2 = new Sword("iron sword", 20);

注意:你使用了同一个类(Sword),但这仍然是2个完全独立的剑。 这是面向对象编程的主要用途。

答案 1 :(得分:0)

这将编译。

Game.java

package game;

import functions.Sword;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Game {

    List<Sword> swords = new ArrayList<Sword>();

    public static void main(String[] args) {

        Game game = new Game();

        game.play();

    }

    public void play() {

        swords.add(new Sword("Wooden sword", 2));
        swords.add(new Sword("Silver sword", 4));

        System.out.println(swords.size());
        System.out.println(Arrays.toString(swords));

    }

}

Sword.java

package functions;

public class Sword {

    private final String name;
    private final int damage;

    public Sword(String name, int damage) {
        this.name = name;
        this.damage = damage;
    }

    public String getName() {
        return name;
    }

    public int getDamage() {
        return damage;
    }
}