Síða 1 af 1

Java - búa til out skrá.

Sent: Mán 29. Nóv 2010 17:41
af Bjosep
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.

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

Sent: Mán 29. Nóv 2010 18:24
af Revenant
Þú 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.

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

Sent: Mán 29. Nóv 2010 22:28
af Daz
É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");       
    }
}