Java .dat操作练习

时间:2015-11-24 23:56:42

标签: java

今天是我在Java的第一天,我真的很陌生,一直在解决一些问题,但我被困了。我知道这很简单,但我希望你能帮助我。谢谢!

我想确定Apple是绿色还是红色。 这些是要求:

  • 所有苹果将列在以下文件中:apples.dat
  • 我们必须将结果分为红色或绿色
  • 反派是那些名字中包含“A”的超级动力人物。
  • 绿色苹果必须保存在名为green.dat
  • 的文件中
  • 红苹果必须保存在名为red.dat
  • 的文件中

所以我的两个主要问题是如何使用.dat文件进行操作,其次,如何处理识别一个或另一个的条件在将来可能会有所不同的事实。

提前致谢!

2 个答案:

答案 0 :(得分:0)

欢迎使用Java。 Java涵盖了很多主题,所以在开始时请求一些建议并不会造成太大的伤害。

在开始之前您需要了解的一些基本知识:

基本内容#1)编辑文件:您需要能够编辑文件。
某些文件将保存您的Java程序。 其他文件将保存您的数据(如名称列表)。

基本知识#2)运行Java程序:验证您是否了解如何运行HelloWorld。
搜索谷歌:java hello world一步一步

基本的东西#3)if-statements:
搜索谷歌:java介绍if statemetns

基本#4)字符串:您需要知道如何定义和使用字符串。
搜索谷歌:java引入字符串

现在我们可以先打破你需要做的事情。

步骤1)弄清楚如何使用名称。
提示:您希望使用java的String类型来保存名称。

步骤2)找出姓名是否包含字母" D"。
提示:搜索google:java如何查明字符是否在字符串中

步骤3)从文件中读取名称。
提示:搜索google:java如何逐行从文件中读取字符串

步骤4)将名称写入文件(特定文件取决于#1)。
提示:搜索谷歌:java如何逐行写入文件
提示:你需要打开两个输出文件,一个用于英雄,一个用于反派。
提示:不要使用相同的文件名来读写;编写不同的文件名以便写入。

祝你好运,处于学习曲线的最底层可能是一个不舒服的地方。

继续努力。

结束提示:谷歌是你的朋友(我希望上面的例子有点帮助,有时当你刚刚开始时,很难知道要搜索什么)。

答案 1 :(得分:0)

要在java中打开文件,很容易。您需要执行以下操作:

  • 创建引用文件的文件对象
  • 创建BufferedReader并将其传递给File对象
  • 的FileReader对象
  • 使用BufferedReader的readLine()方法在while循环中逐行读取条件while(line!= null)
  • 处理已读取的行。
  • 在try / catch块中包装上面

见下面的示例代码,读取apples.dat文件并打印出所有红色和绿色的内容,并分别输出greens.dat和reds.dat中的绿色和红色。

    import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;

public class ReadFileJava {
    public static void main(String[] args) {
        //list that stores all greens 
        ArrayList<String> greens = new ArrayList<String>(); 

        //list that stores all reds
        ArrayList<String> reds = new ArrayList<String>(); 

        //file that references the file containing all green and red apples
        File file = new File("C:\\test_java\\apples.dat");

        //try and catch block in case file not found or any other I/O error
        try {

            //open the file
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;

            //keep reading line by line, if end of file then line == null
            while ((line = br.readLine()) != null) {

                //if line contains "d" then Green it is and add it
                //to the list of reds
                if(line.indexOf("d") != -1) {
                    System.out.println("Green found!");
                    greens.add(line); 
                } else {
                    //add it to the list of superheors.
                    System.out.println("Red found.");
                    reds.add(line); 
                }
            }

            //close the reading file resource 
            br.close();

            //file to print greens back 
            File greensFile = new File("C:\\test_java\\greens.dat"); 

            //file to print reds
            File redsFile = new File("C:\\test_java\\reds.dat"); 

            //PrintStream takes care of open stream to files above
            //and writing line by line, first write greens 
            PrintStream output = new PrintStream(redsFile);

            //loop through list of previously created greens
            for(int i = 0; i < greens.size(); i++) {
                //write hered to file
                output.println(reds.get(i));
            }

            //redirect the print stream to greens file 
            output = new PrintStream(greensFile);

            //loop through list of greens
            for(int i = 0; i < greens.size(); i++) {
               //add green to the file 
                output.println(greens.get(i));
            }

            //close the output stream
            output.close();
        } catch (IOException e) {
            //if file not found, or any other I/O error, then error
            //so check the location of file
            e.printStackTrace();
        }
    }
}

在指定的位置创建了greens.dat和reds.dat的分隔文件(请将位置从C:\\test_java\\filename.extension更改为文件所在的位置)。