加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – PrintWriter将文本添加到文件中

发布时间:2020-12-15 04:59:54 所属栏目:Java 来源:网络整理
导读:在我的在线计算机科学课上,我必须编写一个程序来确定太阳系中每个行星的表面引力.除了一个,我几乎已经完成了它的每个方面.我需要使用单独的方法将表面重力写入文件.这是我目前的方法: public static void writeResultsToFile(double g) throws IOException{
在我的在线计算机科学课上,我必须编写一个程序来确定太阳系中每个行星的表面引力.除了一个,我几乎已经完成了它的每个方面.我需要使用单独的方法将表面重力写入文件.这是我目前的方法:

public static void writeResultsToFile(double g) throws IOException{

    PrintWriter outFile = new PrintWriter(new File("planetaryData.txt"));

    outFile.printf("%.2f%n",g);
    outFile.close();
}

我的问题是,当我将它写入文件时,它将覆盖以前的值.我如何获得它包括所有值.如果有帮助,这是我的全部代码:

import java.util.Scanner;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.File;


public class gravityV1 {

/**
 * @param args
 */

public static double calculateSurfaceGravity(double d,double M){
    double G = 6.67 * Math.pow(10,-11);
    double r = d;
    double g;

    g = G * M/Math.pow(r/2*1000,2);

    return g;
}

public static void printResultsToScreen(String planetName,double diameterKm,double massKg,double g){

    System.out.printf("%-15s%-17.0f%-17.2e%.2f%n",planetName,diameterKm,massKg,g);

}

public static void writeResultsToFile(double g) throws IOException{

    PrintWriter outFile = new PrintWriter(new File("planetaryData.txt"));

    outFile.printf("%.2f%n",g);
    outFile.close();
}

public static void main(String[] args) throws IOException {
    // Variables
    String [] planetName = new String[8];
    planetName[0] = "Mercury";
    planetName[1] = "Venus  ";
    planetName[2] = "Earth  ";
    planetName[3] = "Mars   ";
    planetName[4] = "Jupiter";
    planetName[5] = "Saturn ";
    planetName[6] = "Uranus ";
    planetName[7] = "Neptune";
    double [] diameterKm = new double[8];
    diameterKm[0] = 4880;
    diameterKm[1] = 12103.6;
    diameterKm[2] = 12756;
    diameterKm[3] = 6794;
    diameterKm[4] = 142984;
    diameterKm[5] = 120536;
    diameterKm[6] = 51118;
    diameterKm[7] = 49532;
    double [] massKg = new double[8];
    massKg[0] = 3.30 * Math.pow(10,23);
    massKg[1] = 4.869 * Math.pow(10,24);
    massKg[2] = 5.97 * Math.pow(10,24);
    massKg[3] = 6.4219 * Math.pow(10,23);
    massKg[4] = 1.900 * Math.pow(10,27);
    massKg[5] = 5.68 * Math.pow(10,26);
    massKg[6] = 8.683 * Math.pow(10,25);
    massKg[7] = 1.0247 * Math.pow(10,26);
    double [] g = new double[8];
    int array = 0;

    //code

    System.out.printf("%s%20s%15s%15s%n","Planet","Diameter (km)","Mass (kg)","g (m/s^2)");

    for(double d : diameterKm){
        g[array] = calculateSurfaceGravity(d,massKg[array]);
        printResultsToScreen(planetName[array],d,massKg[array],g[array]);
        writeResultsToFile(g[array]);
        array++;
    }
}

}

解决方法

这样做是为了创建一个在附加模式下使用FileWriter的PrinterWriter:

PrintWriter outFile = new PrintWriter(new FileWriter("planetaryData.txt",true));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读