creare stringa java da file
Buongiorno a tutti,
ho creato un classe java per leggere 'nodi' e 'archi' da un file gml. Ho trovato uno script per trasformare il file in string e poi tramite arraylist trovare i nodi. Quando lo metto in esecuzione però mi da come errore:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at editor.ReadFile.getNodes(ReadFile.java:46)
at editor.ReadFile.main(ReadFile.java:77)
Non riesco a capire dove sia l'errore,qualcuno può aiutami?
Posto qua sotto il codice:
package editor;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReadFile {
private String filename;
public ReadFile(String filename){
this.filename = filename;
}
/**
*
* @return File content as String
* @throws IOException
*/
public String read() throws IOException{
byte[] encodedFile = Files.readAllBytes(Paths.get(filename));
return new String(encodedFile, Charset.forName("ASCII"));
}
public ArrayList<String> getNodes(String content){
ArrayList<String> nodeList = new ArrayList<String>();
String nodePattern = "(id)\\s*[0-9]*";
Pattern regex = Pattern.compile(nodePattern);
Matcher match = regex.matcher(content);
while(match.find()){
String line = match.group(0);
nodeList.add(line.split(" ")[1].trim());
}
return nodeList;
}
public ArrayList<String> getEdges(String content){
ArrayList<String> edgeList = new ArrayList<String>();
String nodePattern = "(source)[\\s]*[\\d]*[\\s]*(target)[\\s]*[\\d]*";
Pattern regex = Pattern.compile(nodePattern);
Matcher match = regex.matcher(content);
while(match.find()){
String line = match.group(0);
line = line.replaceAll("( )+"," ");
String[] arr = line.split(" ");
edgeList.add(arr[1].trim()+","+arr[3].trim());
}
return edgeList;
}
public static void main(String[] args) throws IOException{
ReadFile readFile = new ReadFile(
"prova.gml");
String content = readFile.read();
ArrayList<String> nodes = readFile.getNodes(content);
ArrayList<String> edges = readFile.getEdges(content);
for(String node:nodes){
System.out.println("Node:"+node);
}
for(String edge:edges){
System.out.println("Edge:"+edge);
}
}
}
Grazie in anticipo a chiunque possa aiutarmi!
Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere ai messaggi
Non puoi inserire allegati.
Non puoi modificare i tuoi messaggi
Regole del forum