Hallo, ich versuche ein kleines Update Tool zu schreiben, allerdings gibt mir dieses Tool immer wieder "null"
aus, egal was ich versuche.
Dieses Tool liest zwei Textdatein, speichert den Inhalt dieser als String und wandelt diesen später in einen Integer um. (die Links die zum Downloaden der Text-Datei verwendet werden habe ich hier entfernt, da diese privat sind").
Ich habe auch schon im Internet so einiges zu diesem Thema gefunden, aber es kam immer der selbe Fehler bei raus...
Für alle die nicht so viel Code lesen wollen (der Teil der nicht funktioniert (müsste dieser sein
)
(Datei wird ausgelesen, Inhalt in einen String gespeichert, der String später in einen Integer umgewandelt und dann zwei Integer miteinander vergliechen, welcher der größere ist, allerdings öffnet sich direkt nach dem download der 1 datei ein fenster mit der Meldung: "null" anstatt das der Inhalt der Datei ausgelesen wird und mit einem anderen Integer verglichen wird)
Hier ist mein Code:
Ich hoffe ihr könnt mir helfen.
aus, egal was ich versuche.
Dieses Tool liest zwei Textdatein, speichert den Inhalt dieser als String und wandelt diesen später in einen Integer um. (die Links die zum Downloaden der Text-Datei verwendet werden habe ich hier entfernt, da diese privat sind").
Ich habe auch schon im Internet so einiges zu diesem Thema gefunden, aber es kam immer der selbe Fehler bei raus...
Für alle die nicht so viel Code lesen wollen (der Teil der nicht funktioniert (müsste dieser sein
Java:
try
{
FileReader filereader = new FileReader ("NewVersions.txt");
BufferedReader reader = new BufferedReader (filereader);
while ((zeile = reader.readLine()) != null)
{
zeile = reader.readLine();
}
reader.close();
}
catch (Exception leseFehler){System.err.println(leseFehler);
};
Hier ist mein Code:
Java:
package volcanoplayer.main;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;
public class Main extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
private static JLabel updateAvaible;
private static JLabel updateAvaible2;
private static JLabel noUpdates;
private static JLabel checking;
private static JProgressBar current;
private static JProgressBar current2;
private static boolean update;
private static boolean noupdate;
private static boolean fileExists;
private static String zeile = null;
private static String zeile2 = null;
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception
{
Main.update = false;
Main.noupdate = false;
Main.fileExists = true;
String site = "";
String filename="NewVersions.txt";
String versionname="Versions.txt";
JFrame frm=new JFrame();
current = new JProgressBar(0, 100);
current.setSize(50,50);
current.setValue(0);
current.setStringPainted(true);
current2 = new JProgressBar(0, 100);
current2.setSize(50, 50);
current2.setValue(0);
current2.setStringPainted(true);
try
{
FileReader filereader = new FileReader ("NewVersions.txt");
BufferedReader reader = new BufferedReader (filereader);
while ((zeile = reader.readLine()) != null)
{
zeile = reader.readLine();
}
reader.close();
}
catch (Exception leseFehler){System.err.println(leseFehler);
};
try
{
FileReader filereader = new FileReader ("Versions.txt");
BufferedReader reader = new BufferedReader (filereader);
while ((zeile2 = reader.readLine()) != null)
{
zeile2 = reader.readLine();
}
reader.close();
}
catch (Exception leseFehler){System.err.println(leseFehler);};
updateAvaible = new JLabel("One or more new Updates were found. ");
updateAvaible2 = new JLabel("Update on progress ... ");
noUpdates = new JLabel("No new Updates were found! ");
checking = new JLabel("Checking for Updates ... ");
// checks if the file exists
File files = new File("SLE.exe");
if(!files.isFile())
Main.fileExists = false;
// add everything to the window
if(update == true || fileExists == false)
{
frm.removeAll();
frm.add(current2);
frm.add(updateAvaible);
frm.add(updateAvaible2);
}
else if(update == false && noupdate == true)
{
frm.removeAll();
frm.add(noUpdates);
}
else if(update == false && noupdate == false)
{
frm.add(checking);
frm.add(current);
}
frm.setCursor(Cursor.WAIT_CURSOR);
frm.setVisible(true);
frm.setLayout(new FlowLayout());
frm.setSize(400, 200);
frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
try
{
URL url=new URL(site);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int filesize = connection.getContentLength();
float totalDataRead = 0;
java.io.BufferedInputStream in = new java.io.BufferedInputStream(connection.getInputStream());
java.io.FileOutputStream fos = new java.io.FileOutputStream(filename);
java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
byte[] data = new byte[1024];
int i = 0;
while((i = in.read(data,0,1024))>=0)
{
totalDataRead = totalDataRead + i;
bout.write(data,0,i);
float Percent=(totalDataRead*100)/filesize;
current.setValue((int)Percent);
}
bout.close();
in.close();
Main.newVersionCheck(filename);
Main.currentVersionChecker(versionname);
Main.checkAndDownload();
}
catch(Exception e)
{
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null,e.getMessage(), "Error",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}
private static void newVersionCheck(String datName)
{
File file = new File(datName);
if (!file.canRead() || !file.isFile())
System.exit(0);
BufferedReader in = null;
try
{
in = new BufferedReader(new FileReader(datName));
while ((zeile = in.readLine()) != null)
{
zeile = in.readLine();
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (in != null)
{
try
{
in.close();
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}
}
private static void currentVersionChecker(String datName)
{
File file = new File(datName);
if (!file.canRead() || !file.isFile())
System.exit(0);
BufferedReader in = null;
try
{
in = new BufferedReader(new FileReader(datName));
while ((zeile2 = in.readLine()) != null)
{
zeile2 = in.readLine();
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (in != null)
{
try
{
in.close();
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}
}
private static void checkAndDownload()
{
int newVLine = Integer.parseInt(zeile);
int currentVLine = Integer.parseInt(zeile2);
String site2 = "";
String filenames="SLE.exe";
String site = "";
String versionname="Versions.txt";
if(newVLine > currentVLine)
{
Main.update = true;
try
{
URL url2=new URL(site2);
HttpURLConnection connection3 = (HttpURLConnection) url2.openConnection();
int filesizes = connection3.getContentLength();
float totalDataRead2 = 0;
java.io.BufferedInputStream in2 = new java.io.BufferedInputStream(connection3.getInputStream());
java.io.FileOutputStream fos2 = new java.io.FileOutputStream(filenames);
java.io.BufferedOutputStream bout2 = new BufferedOutputStream(fos2,1024);
byte[] data3 = new byte[1024];
int i2 = 0;
while((i2 = in2.read(data3,0,1024))>=0)
{
totalDataRead2 = totalDataRead2 + i2;
bout2.write(data3,0,i2);
float Percent=(totalDataRead2*100)/filesizes;
Main.current.setValue((int)Percent);
}
bout2.close();
in2.close();
try
{
URL url3=new URL(site);
HttpURLConnection connection2 = (HttpURLConnection) url3.openConnection();
int filesizes2 = connection2.getContentLength();
float totalDataRead3 = 0;
java.io.BufferedInputStream in3 = new java.io.BufferedInputStream(connection2.getInputStream());
java.io.FileOutputStream fos3 = new java.io.FileOutputStream(versionname);
java.io.BufferedOutputStream bout3 = new BufferedOutputStream(fos3,1024);
byte[] data2 = new byte[1024];
int i3 = 0;
while((i3 = in3.read(data2,0,1024))>=0)
{
totalDataRead3 = totalDataRead3 + i3;
bout3.write(data2,0,i3);
float Percent=(totalDataRead3*100)/filesizes2;
Main.current.setValue((int)Percent);
}
bout3.close();
in3.close();
Runtime.getRuntime().exec("SLE.exe");
}
catch(Exception e)
{
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null,e.getMessage(), "Error",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}
catch(Exception e)
{
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null,e.getMessage(), "Error",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}
else if(newVLine == currentVLine)
{
Main.update = false;
Main.noupdate = true;
}
else
{
Main.update = false;
JOptionPane.showMessageDialog(null, "There was an error during checking for updates.");
System.exit(ERROR);
}
}
}
Ich hoffe ihr könnt mir helfen.
Zuletzt bearbeitet: