OutputStreamWriter的换行符
时间: 2023-08-25 12:04:00 浏览: 76
OutputStreamWriter类的换行符是由系统的行分隔符决定的,可以通过使用System.getProperty("line.separator")来获取当前系统的换行符。在Windows系统上,换行符是"\r\n";在Unix/Linux系统上,换行符是"\n"。你可以将这个换行符与OutputStreamWriter一起使用,以实现适应不同系统的换行操作。例如:
```java
String lineSeparator = System.getProperty("line.separator");
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
writer.write("Hello");
writer.write(lineSeparator);
writer.write("World");
```
这样就可以在不同系统下正确地进行换行操作了。
相关问题
那发送的client是BufferedWriter,无法写入换行符,怎么办?
你可以使用 BufferedWriter 的 newLine() 方法来写入换行符,而不是直接写入 "\n"。例如:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write("Hello, world!");
writer.newLine(); // 写入换行符
writer.flush();
编写程序建立一个文件input.txt,文件input.txt是无行结构(无换行符)的汉语文件。
可以使用Java中的IO流来创建一个无行结构的汉语文件。具体步骤如下:
1. 创建文件输出流对象,用于创建文件。
```
FileOutputStream fos = new FileOutputStream("input.txt");
```
2. 创建字符输出流对象,用于向文件中写入字符。
```
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
```
3. 写入汉字字符串到文件中。
```
String content = "这是一段汉语文本";
osw.write(content);
```
4. 关闭流对象,释放资源。
```
osw.close();
fos.close();
```
完整代码如下:
```
import java.io.*;
public class CreateChineseFileDemo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("input.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
String content = "这是一段汉语文本";
osw.write(content);
osw.close();
fos.close();
}
}
```
以上代码将创建一个文件input.txt,并向文件中写入一段汉语文本。需要注意的是,为了保证汉字能够正确地写入文件中,需要使用UTF-8编码。