@Test public void TestObjectOutputStream() throws IOException{ String name = "John Smith"; //创建文件输出流对象,将数据写入name.txt FileOutputStream fos=new FileOutputStream("src/test11/name.txt",true); //创建对象输出流输出对象 ObjectOutputStream oos=new ObjectOutputStream(fos); oos.writeObject(name); oos.flush(); oos.close(); }这个代码为什么会多出来一行乱码
时间: 2024-03-22 22:40:42 浏览: 118
这个问题的原因可能是由于你设置了文件输出流的追加模式,即在原有文件内容的基础上继续写入新的内容,导致文件中存在多个序列化对象,而读取时只读取了第一个对象,后面的对象无法正确反序列化,因此会出现乱码。建议将文件输出流的追加模式去掉,或者在读取文件时使用循环读取所有序列化对象。另外,当你在写入对象时,应该在程序结束时关闭文件输出流和对象输出流。
相关问题
public class Log_ExceptionUtil { public void writeEror_to_txt(String name,String stuNum,String sex,String jiguan,String xueyuan) throws IOException{ File F=new File("D:/TEST.txt"); //如果文件不存在,就动态创建文件 if(!F.exists()){ F.createNewFile(); } FileWriter fw=null; //writeDate 写入的内容1 String writeDate=name+""+ stuNum+""+ sex+""+jiguan+""+xueyuan; try { //设置为:True,表示写入的时候追加数据 fw=new FileWriter(F, true); //回车并换行 fw.write(writeDate+"\r\n"); } catch (IOException e) { e.printStackTrace(); }finally{ if(fw!=null){ fw.close(); } System.out.println("已保存到文件"); } } } 这段代码是为了创建文件保存文件吗?
这段代码是用来创建一个名为"D:/TEST.txt"的文件并在文件中写入一些数据(name, stuNum, sex, jiguan, xueyuan),如果文件不存在就创建,存在就在文件末尾追加数据并在最后打印"已保存到文件"。
创建Test2.java在HDFS 上创建文件 /a.txt,并将自己姓名 学号 班级名称写入文件中
在Java中,我们可以使用Hadoop的FileSystem API来创建文件并在HDFS上写入内容。以下是`Test2.java`的一个简单例子,它会在指定路径下创建一个名为`/a.txt`的文件,并写入你的个人信息:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class Test2 {
private final String name; // 你的姓名
private final int studentId; // 你的学号
private final String className; // 你的班级名称
public Test2(String name, int studentId, String className) {
this.name = name;
this.studentId = studentId;
this.className = className;
}
public void createFile() throws Exception {
// 初始化HDFS配置
Configuration conf = new Configuration();
String hdfsUrl = "hdfs://your_hdfs_cluster_url"; // 替换为你的HDFS集群地址
FileSystem fs = FileSystem.get(conf);
// 创建文件
Path filePath = new Path("/a.txt");
DataOutputStream outputStream = fs.create(filePath);
// 写入信息
outputStream.writeUTF("Name: " + name);
outputStream.writeUTF("\nStudent ID: " + studentId);
outputStream.writeUTF("\nClass: " + className);
// 关闭流
outputStream.close();
System.out.println("File created successfully.");
}
public static void main(String[] args) throws Exception {
Test2 test = new Test2("Your Name", 123456, "Your Class"); // 修改为你自己的信息
test.createFile();
}
}
```
阅读全文