Zeilen aus einer Textdatei einzelnd als String abrufen

xAnonymousxX

Mitglied
Hallo,

Ich bin noch recht neu beim Programmieren von Java, und habe mit solchen sachen nicht viel ahnung.

Also, ich möchte aus einem Textdokument welche ich auf einem WebServer habe alle Zeilen auslesen und als String wieder abrufen. Bisher habe ich es so gemacht dass ich ganz viele Strings erstellt habe und jeden String einzelnd eine Zeile zuweise. Aber da es in diesem fall nur bis 40 geht ist es sehr aufwändig es zu erweitern. Es gibt auch immer einen Fehler wenn man nicht alle 40 Zeilen im Dokument voll hat. Meine Frage währe jetzt, gibt es eine Unkomplizierte Methode so viele Zeilen wie vorhanden sind auszulesen und einzelnd im String wieder zu geben?

Java:
public static void check() {
 new Thread("WingCheck") {
  public void run() {
   try {
    System.out.println("################################################################");
    System.out.println("----------------------------------------------------------------");
    System.out.println("-------------------- Try to Check Wings ------------------------");
    System.out.println("----------------------------------------------------------------");
    System.out.println("################################################################");
    URL url = new URL(WING_URL);
    Scanner scanner = new Scanner(url.openStream());
    Wing01 = scanner.nextLine();
    Wing02 = scanner.nextLine();
    Wing03 = scanner.nextLine();
    Wing04 = scanner.nextLine();
    Wing05 = scanner.nextLine();
    Wing06 = scanner.nextLine();
    Wing07 = scanner.nextLine();
    Wing08 = scanner.nextLine();
    Wing09 = scanner.nextLine();
    Wing10 = scanner.nextLine();
    Wing11 = scanner.nextLine();
    Wing12 = scanner.nextLine();
    Wing13 = scanner.nextLine();
    Wing14 = scanner.nextLine();
    Wing15 = scanner.nextLine();
    Wing16 = scanner.nextLine();
    Wing17 = scanner.nextLine();
    Wing18 = scanner.nextLine();
    Wing19 = scanner.nextLine();
    Wing20 = scanner.nextLine();
    Wing21 = scanner.nextLine();
    Wing22 = scanner.nextLine();
    Wing23 = scanner.nextLine();
    Wing24 = scanner.nextLine();
    Wing25 = scanner.nextLine();
    Wing26 = scanner.nextLine();
    Wing27 = scanner.nextLine();
    Wing28 = scanner.nextLine();
    Wing29 = scanner.nextLine();
    Wing30 = scanner.nextLine();
    Wing31 = scanner.nextLine();
    Wing32 = scanner.nextLine();
    Wing33 = scanner.nextLine();
    Wing34 = scanner.nextLine();
    Wing35 = scanner.nextLine();
    Wing36 = scanner.nextLine();
    Wing37 = scanner.nextLine();
    Wing38 = scanner.nextLine();
    Wing39 = scanner.nextLine();
    Wing40 = scanner.nextLine();
    scanner.close();
   } catch (MalformedURLException e) {
    System.err.println("################################################################");
    System.err.println("----------------------------------------------------------------");
    System.err.println("-------------------- Wing check failed! ------------------------");
    System.err.println("----------------------------------------------------------------");
    System.err.println("################################################################");
   } catch (IOException e) {
    e.printStackTrace();
   }
  };
 }.start();
}

Ich habe etwas davon gehört dass man die String im Zeilen umbruch Splitten kann, wie genau das funktioniert weiß ich aber nicht.

PS: Ich will nicht z.b. die 5 zeile wiedergeben, sondern alle gleichzeitig. Es müssen aber schon gesplittete Strings sein.
 
Zuletzt bearbeitet von einem Moderator:
Guck dir mal Arrays, Listen und Sets an, eins davon dürfte passen.

Allerdings hab ich keine Ahnung, was du mit 'alle gleichzeitig wiedergeben' meinst?
 
Also, ich habe in jeder zeile des Dokuments eine UUID diese UUID brauch in als einzelnen String damit diese UUID in diesem fall Wings bekommt.

vieleicht ist das einfacher: Ich habe ein Boolean welche nur diese UUID's wiedergeben soll.
Java:
public static boolean GotWing(Entity entityIn) {
 if (entityIn == null) {
  return false;
 }
 if (!(entityIn instanceof EntityPlayer)) {
  return false;
 }
 return (entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing01) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing02) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing03) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing04) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing05) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing06) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing07) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing08) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing09) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing10) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing11) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing12) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing13) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing14) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing15) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing16) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing17) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing18) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing19) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing20) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing21) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing22) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing23) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing24) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing25) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing26) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing27) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing28) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing29) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing30) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing31) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing32) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing33) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing34) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing35) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing36) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing37) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing38) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing39) ||
  entityIn.getUniqueID().toString().equals(PlayerAddsCheck.Wing40));
}
 
Zuletzt bearbeitet von einem Moderator:
Wie gesagt, guck dir Arrays, Lists und Sets an, die dürfte genau das sein, was du brauchst.
Wenn du damit nicht klarkommst, frag noch mal 😉
 
Ich denke mal das Hauptproblem ist das Auslesen der Datei aus dem Web. Das lässt sich offenbar genauso machen wie bei einer lokalen. Hier mal ein komplettes Beispiel (Ob das jetzt die beste Lösung ist weiss ich nicht; es funktioniert aber):

Code:
public static List<String> readFromWeb(String address)
{
	BufferedReader br = null;
	List<String> lines = new ArrayList<String>();
	
	try
	{
		URL url = new URL(address);
		br = new BufferedReader(new InputStreamReader(url.openStream()));
		String line;
		while((line = br.readLine()) != null)
		{
			lines.add(line);
		}
	}
	catch(IOException e)
	{
		e.printStackTrace();
	}
	finally
	{
		try
		{
			br.close();
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
	}
	
	return lines;
}
 
@X5-599 Ich nehm jetzt mal dein Grundgerüst und möble es noch etwas auf.

- try-resource Blöcke gibt es seit Java 7
- Behandlung der Exception immer den Caller überlassen/außer die Methode ist dafür ausgelegt Exceptions zu verarbeiten!

Dann siehts auch so aus:
Java:
public static List<String> readFromWeb(String address) throws IOException {
  URL url = new URL(address);
  List<String> lines = new ArrayList<String>();
  
  try (InputStream urlStream = url.openStream();
      InputStreamReader streamReader = new InputStreamReader(urlStream);
      BufferedReader br = new BufferedReader(streamReader)) {
    
    String line;
    while ((line = br.readLine()) != null) {
      lines.add(line);
    }
  }
  
  return lines;
}
 

Zurück
Oben