Note that there are some explanatory texts on larger screens.

plurals
  1. POOutput is correct on Mac but not on Windows
    primarykey
    data
    text
    <p>We have a Java program that extracts info from a .xml file, converts it to a string, and then writes the string to a .txt file. The file is then appended to a second .txt file which will holds all the inputs from the multiple .xml files. In Eclipse on a Mac, the program correctly appends all the .xml code to the final .txt file. </p> <p>However when running the same Java program on a Windows computer in Eclipse, the final .txt file does not collect the all the inputs as it did on the Mac. Is there a known difference with reading/writing to files on Windows vs. Mac? Especially when code written initially on a Mac is transferred to a Windows machine? </p> <p>Here's our code:</p> <pre><code>package edu.uci.ics.jung.samples; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; import java.io.File; import java.util.Scanner; public class ReadXMLFile1 { public static void main(String argv[]) throws IOException { //throws ioexception allows the filewriter code below (specifically writing the "t# b" title) //while loop to grab all xml files in the form of name0, name1, name2, etc and perform txt file conversion int numberofgraphs=10; //indicate number of graphs importing/reading/appending int x=0; int b = 0; while (x &lt; numberofgraphs){ FileWriter pagetowrite = new FileWriter("graphtotal1.txt", true); //true says to append string "scannedstuff" to graphtotal.txt (graphtotal.txt can be replaced by any file in visualization folder, you name it!) BufferedWriter now = new BufferedWriter(pagetowrite); //more advanced file writer, included in order to use newLine() method below now.write("t# "+b); //writes the title t# "b" at top of each graph set now.newLine(); //returns to next line of file (helps keep format of original .txt) now.close(); //ends file writing for that line of text file try { String xmlname = ("Untitled"+b+".xml"); File fXmlFile = new File(xmlname); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); doc.getDocumentElement().normalize(); NodeList oList = doc.getElementsByTagName("node"); //writing to txt file the node info for (int temp = 0; temp &lt; oList.getLength(); temp++) { Node oNode = oList.item(temp); if (oNode.getNodeType() == Node.ELEMENT_NODE) { Element fElement = (Element) oNode; String nodename = getTagValue("name", fElement); char nodenumber = nodename.charAt( 1 ); String nodelabel = getTagValue("string", fElement); FileWriter pagetowriteon = new FileWriter("newinput1.txt", true); //true says to append string "scannedstuff" to newinput1.txt (newinput1.txt can be replaced by any file in visualization folder, you name it!) BufferedWriter out = new BufferedWriter(pagetowriteon); //more advanced file writer, included in order to use newLine() method below out.write("v"+ " "); //writes the letter v to indicate a node out.write(nodenumber+" "); //writes number of node created out.write(nodelabel); // writes the name of node..its label out.newLine(); //returns to next line of file (helps keep format of original .txt) out.close(); //ends file writing for that line of text file } } NodeList nList = doc.getElementsByTagName("arc");//writing to txt file the arc info for (int temp = 0; temp &lt; nList.getLength(); temp++) { Node nNode = nList.item(temp); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; //String arcname = getTagValue("name", eElement); String arcnode1 = getTagValue("From", eElement); char node1 = arcnode1.charAt( 1 ); String arcnode2 = getTagValue("To", eElement); char node2 = arcnode2.charAt( 1 ); String arclabel = getTagValue("string", eElement); FileWriter pagetowriteon = new FileWriter("newinput1.txt", true); //true says to append string "scannedstuff" to newinput1.txt (newinput1.txt can be replaced by any file in visualization folder, you name it!) BufferedWriter out = new BufferedWriter(pagetowriteon); //more advanced file writer, included in order to use newLine() method below out.write("u"+ " "); //writes the letter u to indicate an edge out.write(node1+" "); out.write(node2+ " "); out.write(arclabel); out.newLine(); //returns to next line of file (helps keep format of original .txt) out.close(); //ends file writing for that line of text file } } //an option (mostly for individual graph use with simplegraphview...probably unecessary since simplegraph not used until after Data mining) to write to a newly named textfile so can run simplegraph view without having to change file name File file = new File("newinput1.txt"); //File (or directory) with new name (makes it easy to change one file name here instead of two in code above) File file2 = new File("newinput.txt"); file.renameTo(file2); //this strategy of appending-&gt; keep-&gt; allows you to change one file name for giant append file..Filewriter line below ("graphtotal.txt") //start of appending text file // boolean graphready; //assign if(boolean){ = to true when ready to append if (true){ File file3 = new File ("newinput.txt"); //indicate which file Scanner scan = new Scanner (file3); //read the text file indicated above while (scan.hasNextLine()){ //will loop until no more lines of code detected; this loop reads and appends text to desired file String scannedstuff3 = scan.nextLine(); //converts next line of code to a string FileWriter pagetowriteon = new FileWriter("graphtotal.txt", true); //true says to append string "scannedstuff" to graphtotal.txt (graphtotal.txt can be replaced by any file in visualization folder, you name it!) BufferedWriter out = new BufferedWriter(pagetowriteon); //more advanced file writer, included in order to use newLine() method below //out.write("t# "+b); //writes the title t3 0 at top of each graph set //out.newLine(); //returns to next line of file (helps keep format of original .txt) out.write(scannedstuff3); //writes scanned line of code to new file indicated in FileWriter("desiredfile.txt", true) out.newLine(); //returns to next line of file (helps keep format of original .txt) out.close(); //ends file writing for that line of text file } scan.close(); //ends scanning of txt file indicated } } catch (Exception e) { e.printStackTrace(); } x=x+1; b=b+1; } } private static String getTagValue(String sTag, Element eElement) { NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes(); Node nValue = (Node) nlList.item(0); return nValue.getNodeValue(); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload