javaio-WriteStringToFile

本文提供了一个使用不同Java IO类将字符串写入文件的示例,包括FileWriter、OutputStreamWriter、DataOutputStream等,展示了不同类对字符串编码的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


package cn.yu.test.io;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
/**
* WriteStringToFile
* @version 1.0
* @date 2010/5/10
**/
public class WriteStringToFile {
public static void main(String[] args) {
try {
String aString = "Hello你好";

FileWriter fw = new FileWriter("c:/out.fw.txt");
fw.write(aString);
fw.close(); //默认gbk编码9字节
////////////////////////////////////////////////////////////////////////////
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("c:/out.osw.txt"),"UTF-8");
osw.write(aString);
osw.close(); //utf-8编码 11字节

///////////////////////////////////////////////////////////
DataOutputStream dos = new DataOutputStream(new FileOutputStream("c:/out.dos.txt"));
dos.writeChars(aString);
dos.close(); //14个字节, 每个字符用该字符2字节的unicode表示
//////////////////////////////////////////////////////////////
PrintStream ps = new PrintStream(new FileOutputStream("c:/out.ps.txt"));
ps.print(aString);
ps.close(); //默认gbk编码9字节
//////////////////////////////////////////////
PrintWriter pw = new PrintWriter(new FileOutputStream("c:/out.pw.txt"));
pw.print(aString);
pw.close(); //默认gbk编码9字节
///////////////////////////////////////////////
RandomAccessFile ra = new RandomAccessFile("c:/out.fa.txt", "rw");
ra.writeUTF(aString); //
ra.close(); //13个字节 ,前两个直接表示一个无符号整数,值是这个字符串的字符所需要的字节数
////////////////////////////////////////////////
RandomAccessFile ra2 = new RandomAccessFile("c:/out.fa2.txt", "rw");
ra2.writeChars(aString);
ra2.close(); //14个字节, 每个字符用该字符2字节的unicode表示
} catch (Exception e) {
e.printStackTrace();
}
}
}

在处理 Java 项目时,`commons-io` `springfox` 是两个常用的库,它们分别用于简化文件操作生成 API 文档。 ### commons-io 的使用指南 `commons-io` 是 Apache 提供的一个用于简化 I/O 操作的库。它包含了许多实用的方法,可以方便地读取、写入操作文件。以下是一些常见的使用示例: - **读取文件内容**:可以使用 `FileUtils.readFileToString()` 方法将文件内容读取为字符串。 ```java import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; public class FileReadExample { public static void main(String[] args) { try { File file = new File("path/to/file.txt"); String content = FileUtils.readFileToString(file, "UTF-8"); System.out.println(content); } catch (IOException e) { e.printStackTrace(); } } } ``` - **写入文件内容**:可以使用 `FileUtils.writeStringToFile()` 方法将字符串写入文件。 ```java import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; public class FileWriteExample { public static void main(String[] args) { try { File file = new File("path/to/file.txt"); String content = "Hello, World!"; FileUtils.writeStringToFile(file, content, "UTF-8"); } catch (IOException e) { e.printStackTrace(); } } } ``` - **复制文件**:可以使用 `FileUtils.copyFile()` 方法复制文件。 ```java import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; public class FileCopyExample { public static void main(String[] args) { try { File source = new File("path/to/source.txt"); File destination = new File("path/to/destination.txt"); FileUtils.copyFile(source, destination); } catch (IOException e) { e.printStackTrace(); } } } ``` ### springfox 的使用指南 `springfox` 是一个用于生成 Spring Boot 应用程序的 API 文档的工具。它支持 Swagger 2 Spring WebFlux。以下是集成 `springfox` 的基本步骤: 1. **添加依赖**:在 `pom.xml` 文件中添加 `springfox` 的依赖。 ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> ``` 2. **配置 Swagger**:创建一个配置类来启用 Swagger。 ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } } ``` 3. **访问 Swagger UI**:启动应用程序后,可以通过访问 `http://localhost:8080/swagger-ui.html` 来查看 API 文档。 4. **自定义文档信息**:可以通过 `Docket` 对象的 `apiInfo()` 方法来自定义文档的信息。 ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring Boot REST API") .description("Description of API") .version("1.0.0") .build(); } } ``` ### 常见问题解决方案 - **commons-io 无法读取大文件**:如果遇到内存不足的问题,可以考虑使用 `BufferedReader` 或者分块读取文件。 - **springfox 无法生成文档**:确保控制器类方法上有 `@RestController` `@RequestMapping` 注解,并且 Swagger 配置类正确启用了 Swagger。 - **springfox 与 Spring Boot 2.x 兼容性问题**:某些版本的 `springfox` 可能与 Spring Boot 2.x 不兼容,可以尝试使用 `springdoc-openapi` 替代。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值