Mein Programm, gibt mir eine Liste von Dateien in einem Verzeichnis wieder. Dieses Verzeichnis wird über eine txt Datei aufgerufen.
In der zweiten Zeile der txt Datei möchte ich jetzt Nummern schreiben.
Bei einer “1” soll die Datei mit der “exersice-1” und dem aktuellen Datum im xy-Graphen angezeigt werden.
Simultan dazu das gleiche mit der “2”.
Jemand eine Idee wo mein Fehler liegt?
Hier die Dateien in der Ausgabe:
export_test_practise-1_2017-06-23_2017-06-23.csv
export_test_practise-1_2017-06-24_2017-06-24.csv
export_test_practise-2_2017-06-24_2017-06-24.csv
Und hier mein Code:
import java.awt.Color;
import java.awt.EventQueue;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.TimeZone;
public class Test {
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
ApplicationFrame frame = new ApplicationFrame("Temperaturprofile");
Test test = new Test();
try {
frame.add(test.createChart("Temperature profile"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
frame.pack();
frame.setLocationRelativeTo(null);;
frame.setVisible(true);
});
}
private ChartPanel createChart(String chartTitle) throws IOException {
JFreeChart chart = ChartFactory.createTimeSeriesChart(chartTitle,
"Time", "Temperature", createDataset(), true, true, false);
ChartPanel chartPanel = new ChartPanel(chart);
XYPlot plot = chart.getXYPlot();
DateAxis axis = (DateAxis) plot.getDomainAxis();
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ssX");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
axis.setDateFormatOverride(df.getTimeInstance());
plot.setBackgroundPaint(Color.WHITE);
return chartPanel;
}
public XYDataset createDataset() throws IOException {
TimeSeries series = new TimeSeries("Temperature");
TimeSeriesCollection dataset = new TimeSeriesCollection(series);
File dir = new File("../User/Test.txt");
// Read from the file
BufferedReader br = new BufferedReader(new FileReader(dir));
String line = br.readLine();
String path2 = br.readLine();
br.close();
new File (line);
File[] fileList = new File (line).listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".csv");
}
});
for (File f : fileList){
Arrays.sort(fileList);
System.out.println(f.getName());
}
long mod = 0;
File found;
if (path2.equals(1) && dir.isFile() && dir.getName().toLowerCase().endsWith("1") && dir.lastModified() > mod){
mod = dir.lastModified();
found = dir;
}
else if (path2.equals(2) && dir.isFile() && dir.getName().toLowerCase().endsWith("2") && dir.lastModified() > mod){
mod = dir.lastModified();
found = dir;
}
return dataset;
}
}
Würd mich freuen, wenn von euch mal jemand drüberschauen könnte.
LG