【问题标题】:How to use the data stored in .txt when reading it读取时如何使用.txt中存储的数据
【发布时间】:2015-04-02 08:19:07
【问题描述】:

我已将一些数据写入 .txt 文件,并从另一个 Frame 读取 .txt 文件。是否有可能我可以使用存储在 .txt 中的数据进行一些计算。

假设 .txt 只有 1 个 Double 值。我不想只显示它。

编辑:

public WeightlossFat()
{
    JPanel text = new JPanel();
    text.add(bmi);
    text.add(rbmi);
    text.add(bmr);
    text.add(rbmr);
    text.add(tdee);
    text.add(rtdee);
    text.setLayout(new GridLayout(1,3));

    JPanel percent = new JPanel();
    percent.add(suggested);
    percent.add(aggressive);
    percent.add(reckless);
    percent.setLayout(new GridLayout(3,1));

    setLayout(new BorderLayout());
    add(text,BorderLayout.NORTH);
    add(percent,BorderLayout.CENTER);

    suggested.addActionListener(this);
    aggressive.addActionListener(this);
    reckless.addActionListener(this);

    try
    {

        BufferedReader bmi = new BufferedReader(new FileReader("bmi.txt"));

        while((line = bmi.readLine()) != null)
        {
            currentline = line;
        }
        lastline = currentline;
        rbmi.setText(lastline);
        bmi.close();

        BufferedReader bmr = new BufferedReader(new FileReader("bmr.txt"));

        while((line = bmr.readLine()) != null)
        {
            currentline = line;
        }
        lastline = currentline;
        rbmr.setText(lastline);
        bmr.close();

        BufferedReader tdee = new BufferedReader(new FileReader("tdee.txt"));

        while((line = tdee.readLine()) != null)
        {
            currentline = line;
        }
        lastline = currentline;
        rtdee.setText(lastline);
        tdee.close();           
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null, "File does not exist", "Error", JOptionPane.ERROR_MESSAGE);
    }

}

从上面的代码可以看出,我可以显示 .txt 中的内容,但是我想使用 .txt 中的值进行一些计算。

public static double suggested(double lastline)
{
    //double rate = lastline * 0.15;
    //double result = lastline - rate;
    //return result;
}

谁能教我如何使用这个值?

【问题讨论】:

  • 你的问题太模糊了。当然,可以读取文本文件并将其内容用于您需要的任何内容。我认为,您必须更详细地解释您的问题。
  • 您的问题不清楚。请edit it并附上相关代码。
  • 您的问题非常广泛。也许这有帮助:stackoverflow.com/questions/1830698/…
  • 编辑你的问题后,还是不是很清楚。我假设,您正在寻找一种将字符串转换为双精度的方法。如果是这样,请查看Double.parseDoubleDouble.valueOf
  • 你为什么不简单地发布一些你在“.txt”上的行的例子?上面所有的代码都没用。

标签: java file-io


【解决方案1】:

我还没有完全理解你的问题。因此,当然,使用 Java,您可以读取/写入 .txt 文件并使用这些值进行一些计算。例如你有这个文件: 10.2 7.4 3.4

您可以读取这些值,将它们存储在向量或 ArrayList 中并进行一些微积分,例如求和。我希望这个答案对你很有用!

【讨论】:

    【解决方案2】:

    阅读包含各种数据(单词和数字)的文本的一种非常简单的方法是使用扫描仪。

    Scanner scanner = new Scanner( new File( "x.txt" ) );
    

    如果您期望双倍:

    double dVal = scanner.nextDouble();
    

    或者一个整数:

    int iVal = scanner.nextInt();
    

    您可以在阅读之前进行测试以确保文件正确:

    if( scanner.hasNextDouble() ){
        double dVal = scanner.nextDouble();
    }
    

    在这之间你可以读到字符串,“tokens”:

    String tok = scanner.next();
    

    等等。

    【讨论】:

      【解决方案3】:

      我认为使用文本字段更好。 你可以这样使用..

      插入值

      JTextField txtBmi = new JTextFiled()
      txtBmi.setText(bmi);
      text.add(txtBmi);
      

      获取价值

      int numBmi = Integer.parseInt(txtBmi.getText());
      

      而且..下面的事情是正确的,你想要吗?

          int numBmi = 0;
          int numBmr = 0;
          int numTdee = 0;
      
          try
          {
      
              BufferedReader bmi = new BufferedReader(new FileReader("bmi.txt"));
      
              while((line = bmi.readLine()) != null)
              {
                  currentline = line;
              }
              lastline = currentline;
              rbmi.setText(lastline);
              try {
                  numBmi = Integer.parseInt(lastline);
              } catch (Exception e) {
              } 
              bmi.close();
      
              BufferedReader bmr = new BufferedReader(new FileReader("bmr.txt"));
      
              while((line = bmr.readLine()) != null)
              {
                  currentline = line;
              }
              lastline = currentline;
              rbmr.setText(lastline);
              try {
                  numBmr = Integer.parseInt(lastline);
              } catch (Exception e) {
              } 
              bmr.close();
      
              BufferedReader tdee = new BufferedReader(new FileReader("tdee.txt"));
      
              while((line = tdee.readLine()) != null)
              {
                  currentline = line;
              }
              lastline = currentline;
              rtdee.setText(lastline);
              try {
                  numTdee = Integer.parseInt(lastline);
              } catch (Exception e) {
              } 
              tdee.close();           
          }
          catch(Exception e)
          {
              JOptionPane.showMessageDialog(null, "File does not exist", "Error", JOptionPane.ERROR_MESSAGE);
          }
      
          double calBmi = suggested(numBmi);
          double calBmr = suggested(numBmr);
          double calTdee = suggested(numTdee);
      }
      
      public static double suggested(double inputValue)
      {
          double rate = inputValue * 0.15;
          double result = inputValue - rate;
          return result;
      }
      

      【讨论】:

      • 是的,这就是我想要弄清楚的。非常感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 2015-04-26
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      相关资源
      最近更新 更多