Perchè nelle espressioni regolari quello è un carattere speciale e va quotato:
codice:
String[] arr = line.split("\\|");
Ciao.