Я не уверен, на какой платформе вы работаете, но в Eclipse Galileo в Ubuntu это работает именно так, как и ожидалось.
код:
import java.io.FileOutputStream;
public class Find {
public static void main(String args[]) {
try {
String s1=new String("127.0.0.1 www.google.com127.0.0.1 www.bing.com");
String s2=new String("127.0.0.1 www.google.com" + "\n" +
"127.0.0.1 www.bing.com");
byte buffer1[]=s1.getBytes();
byte buffer2[]=s2.getBytes();
FileOutputStream fos=new FileOutputStream("f1.txt");
for(int i=0;i<buffer1.length;i++)
fos.write(buffer1[i]);
FileOutputStream fos2=new FileOutputStream("f2.txt");
for(int i=0;i<buffer2.length;i++)
fos2.write(buffer2[i]);
System.out.println("size of buffer1 = "+buffer1.length);
System.out.println("size of buffer2 = "+buffer2.length);
String x=new String("s"+"\n"+"u");
System.out.println(x);
} catch (Exception e) {}
}
}
выходы:
size of buffer1 = 46
size of buffer2 = 47
s
u
и два файла отличаются:
f1.txt:
127.0.0.1 www.google.com127.0.0.1 www.bing.com
f2.txt:
127.0.0.1 www.google.com
127.0.0.1 www.bing.com
Если вы используете операционную систему, которая не использует \n
в качестве разделителя строк (например, Windows), вы все равно получите тот же вывод, но инструменты, которые вы используете для look в этом файле (или обработать его) может работать не так, как ожидалось. Если вы замените \n
на \r\n
, вы, вероятно, найдете другие инструменты, которые отлично работают для Windows.
Но для переносимости используйте свойство line.separator
вместо \n
(или \r\n
) напрямую:
String s2=new String("127.0.0.1 www.google.com" +
System.getProperty("line.separator") +
"127.0.0.1 www.bing.com");