Wpis z mikrobloga

Co robi taka linijka? Jakie stringi dopasuje w Scannerze?

Scanner s = new Scanner(in).useDelimiter("\A");
in to obiekt InputStream z socketa TCP. Potem jest:

result = s.hasNext() ? s.next() : "";
Kod blokuje się na metodzie hasNext(). Na co dokładnie czeka? \A oznacza początek stringa. Czy takie wyrażenie dopasuje wszystko, czy jednak coś konkretnego musi przyjść na sockecie, np. koniec linii? Na socket przychodzi ciąg ASCII, który zawiera wyłącznie litery i cyfry, nie ma żadnych znaków sterujących. Kod nie jest mój i zastanawiam się co autor chciał osiągnąć. Dlaczego po prostu nie czyta ze streama tylko stosuje Scanner.
#java #android #programowanie