FileWriter 写入文件中文乱码

从前台jsp表单拿到数据,写入本地临时文件中。本地运行没问题,部署到服务器端,出现乱码。服务器环境win2003

原始代码:

1 FileWriter writer = new FileWriter(path);
2 
3 writer.write(fileContent)

解决后的:

1 Writer writer = new BufferedWriter(
2                         new OutputStreamWriter(
3                                 new FileOutputStream(path), "UTF-8"));
4 
5 writer.write(fileContent);

无乱码

但由于生成的内容要写入文件,如(.java  .c .cpp), 但无法编译成功,识别不出格式,显示为mac文件。那就换种方法吧:

1 FileWriter fw = new FileWriter(path);
2 BufferedWriter bw = new BufferedWriter(fw);
3 bw.write(fileContent);

这样貌似不存在中文乱码问题.. 但貌似还是不行..

 

最后发现根本原因不在于流的转换,而是在前台获取文本内容时,以前为了防止文本文件在记事本中不换行的现象,加了\n到 \r\n的转换

最后导致了生成用例文件无法编译~  一直找错了方向   

转载于:https://www.cnblogs.com/devilfree/p/3169611.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java FileWriter 是一个用于将数据写入文件的类。它可以将字符、字符串和数字等数据写入文件中。使用 FileWriter 写入文件时,需要指定文件名文件路径。在写入文件时,可以选择覆盖原有文件内容或者在文件末尾添加新的内容。使用 FileWriter 写入文件时,需要注意文件编码的问题,以免出现乱码等问题。 ### 回答2: Java FileWriter是一个用于入文本文件的类。它允许将数据入文本文件,并且还允许在入任何数据之前创建文件。 要使用FileWriter写入文件,您需要执行以下步骤: 1. 创建FileWriter对象。要创建FileWriter对象,您需要提供一个字符串,该字符串是您要入的文件的完整路径。例如,要入名为“file.txt”的文件,您可以使用以下代码创建FileWriter对象: FileWriter fw = new FileWriter("file.txt"); 2. 使用write()方法入数据。要使用FileWriter入数据,您可以使用write()方法。write()方法需要一个字符串作为参数,表示您要入的数据。例如,要将字符串“Hello, World!”写入文件,您可以使用以下代码: fw.write("Hello, World!"); 3. 使用flush()方法刷新缓冲区。当您使用write()方法入数据时,数据实际上被存储在缓冲区中。要确保所有数据都被写入文件,您需要使用flush()方法刷新缓冲区。例如,要刷新缓冲区,您可以使用以下代码: fw.flush(); 4. 使用close()方法关闭文件。当您完成写入文件时,您需要关闭文件,以确保所有数据被正确入磁盘。要关闭文件,您可以使用以下代码: fw.close(); 请注意,当您使用FileWriter写入文件时,它会覆盖先前存在的文件内容。如果希望在现有文件中添加数据,则需要使用FileWriter的另一个构造函数,该构造函数带有一个布尔参数,用于指示是否附加到文件末尾。例如,要将数据附加到现有文件中,您可以使用以下代码: FileWriter fw = new FileWriter("file.txt", true); 总之,FileWriter是一种简单而有效的入文本文件的方法。它允许您轻松地将数据写入文件,并且可以配置以附加到现有文件中。记得在完成入操作后刷新缓冲区并关闭文件,以确保所有数据都被正确入磁盘。 ### 回答3: Java FileWriter是一种用于将数据写入文件的类,它允许程序员将字符流写入文件中。FileWriter类会将要入的数据转换为字符,然后将字符写入文件中。它的工作原理与OutputStream相似,但以字符而非字节为单位进行操作。 FileWriter类中的构造函数可接受要入的文件名文件对象,也可指定是否在文件末尾添加内容。默认情况下,FileWriter会覆盖文件中的任何内容。因此,要想在文件末尾添加内容,必须使用构造函数的第二个参数为true。 FileWriter的使用非常简单,只需要创建对象、入数据、关闭对象即可完成文件入。这里需要注意的是,一定要在使用完FileWriter后关闭对象,否则有可能会导致数据丢失或损坏。 下面是一段使用FileWriter将字符串写入文件中的示例代码: ```java import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { public static void main(String[] args) { String fileName = "output.txt"; String textToWrite = "Hello, world!"; try { FileWriter writer = new FileWriter(fileName); writer.write(textToWrite); writer.close(); System.out.println("Data written successfully!"); } catch (IOException e) { System.out.println("An error occurred: " + e.getMessage()); e.printStackTrace(); } } } ``` 上述代码使用FileWriter将字符串"Hello, world!"写入文件output.txt中,并在控制台输出了入成功的信息。 总之,FileWriterJava中非常常用的文件入类,它可以轻松地将数据以字符流的形式写入文件中。要注意及时关闭对象以避免不必要的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值