Java - búa til out skrá.


Höfundur
Bjosep
Geek
Póstar: 880
Skráði sig: Þri 16. Maí 2006 17:48
Reputation: 2
Staða: Ótengdur

Java - búa til out skrá.

Pósturaf Bjosep » Mán 29. Nóv 2010 17:41

Komið þið sæl(ir)

Ég er að vesenast við það að fá java til þess að prenta niðurstöður úr reikningum í textaskrá.

Þetta kæmi þá í lok kóðans þar sem notanda er boðið að prenta út niðurstöðurnar og velja nafn á skránna.

Kóði: Velja allt

import java.io.*;
import java.util.Scanner;

public class skriftext
{
    public static void main(String[] args)throws IOException{
   Scanner scan = new Scanner (System.in);
    Writer output = null;
    String text = scan.nextLine();
    File file = new File(scan.nextLine());
    output = new BufferedWriter(new FileWriter(file));
    output.write(text);
    output.close();
    System.out.println("Your file has been written");       
    }
}


Ég fann þennan kóða netinu og er búinn að fikta smá í honum og fá hann til að virka við reikniritið. Vandamál mitt er hinsvegar að fá þennan kóða til þess að prenta útreiknuðu gildin. Ég setti þennan kóða í lokin á reikniforritinu en eins og er gerir hann lítið annað en að búa til tóma textaskrá með nafni sem notandinn valdi.

Þið getið séð kóðann í heild sinni hér. http://notendur.hi.is/~bjs20/norm/norm.java

með fyrirfram þökk um góð svör.



Skjámynd

Revenant
</Snillingur>
Póstar: 1031
Skráði sig: Fim 24. Jún 2004 12:36
Reputation: 132
Staða: Tengdur

Re: Java - búa til out skrá.

Pósturaf Revenant » Mán 29. Nóv 2010 18:24

Þú gætir leyst þetta á að skilgreina breytu efst í forritinu (t.d. String OutputText = "") og í hvert skipti sem þú færð niðurstöðu þá appendaru við þennan streng með "+=" (mundu bara að hafa "\n" aftast til að fá nýja línu).

Kóði: Velja allt

import java.util.Scanner;
import java.io.*;

public class File {

        public static void main (String[] args) throws IOException {
                String oText = "";

                /* Hérna kemur forritið */

                System.out.println("Niðurstaða 1");
                oText += "Nidurstada 1 \n";

                System.out.println("Niðurstaða 2");
                oText += "Nidurstada 2 \n";

                /* Endir */
                Scanner scan = new Scanner(System.in);
                String svar;

                System.out.print("Vista niðurstöður? (j/n): ");
                svar = scan.nextLine();

                if (svar.equals("j")) {
                        String filename = "test.txt";
                        Writer out = new OutputStreamWriter(new FileOutputStream(filename));
                        try {
                                out.write(oText);
                        }
                        finally {
                                out.close();
                        }

                        System.out.println("Skrá vistuð");
                } else {
                        System.out.println("Skrá EKKI vistuð");
                }



        }
}


Athugaðu að þetta yfirskrifar skránna (í þessu tilfelli test.txt) í hvert skipti sem forritið er keyrt.



Skjámynd

Daz
Besserwisser
Póstar: 3819
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 143
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: Java - búa til out skrá.

Pósturaf Daz » Mán 29. Nóv 2010 22:28

Ég prófaði að keyra þetta hjá mér og ég sé ekki betur en þetta virki fínt. Spurning hvort að röðin á aðgerðunum hafi ruglað þig eitthvað? Eða það hafi vantað að flusha strauminn.

Kóði: Velja allt

import java.io.*;
import java.util.Scanner;

public class skriftext
{
    public static void main(String[] args)throws IOException{
   Scanner scan = new Scanner (System.in);
    Writer output = null;
    System.out.print("Please enter file name: ");
    File file = new File(scan.nextLine());
   
    System.out.print("Please enter file contents: ");
    String text = scan.nextLine();
   
    output = new BufferedWriter(new FileWriter(file));
   
    output.write(text);
    output.flush(); //ónauðsynlegt hjá mér, YMMV
    output.close();
    System.out.println("Your file has been written");       
    }
}