虚拟机怎么存.h文件‘
时间: 2024-01-14 17:03:26 浏览: 117
虚拟机并不会直接存储头文件(.h文件),它只会存储源代码文件(.c或.cpp文件)和可执行文件(.exe文件等)。头文件是用来声明函数、宏和变量等的,它们通常被包含在源代码文件中。当编译器编译源代码文件时,会自动查找并包含相应的头文件。
因此,如果想在虚拟机中使用头文件,需要将头文件所在的目录添加到编译器的搜索路径中。具体方法是在编译源代码时使用"-I"选项指定头文件所在的目录。例如,假设头文件位于"/usr/include"目录下,可以使用以下命令编译源代码文件:
```shell
gcc -I /usr/include source.c -o executable
```
这样编译器就会在"/usr/include"目录下查找并包含相应的头文件。
相关问题
8-3 图书馆持久化构造图书类,包含名称(字符串)、作者(字符串)、出版社(字符串)、版本号(整数)、价格(浮点数),构造图书馆类,其中包含若干图书,用容器存储图书对象,然后定义方法void addBook(Book b)添加图书对象,定义方法void persist(),将所有图书存至本地文件books.dat里,定义方法Book[] restore() 从文件books,dat中读取所有图书,并返回图书列表数组。 main函数中构造图书馆类对象,向其中添加3个图书对象,测试其persist和restore方法。(注意,请使用对象序列化方法实现)
好的,以下是代码实现:
Book.java:
```java
import java.io.Serializable;
public class Book implements Serializable {
private String name; // 名称
private String author; // 作者
private String press; // 出版社
private int version; // 版本号
private double price; // 价格
public Book(String name, String author, String press, int version, double price) {
this.name = name;
this.author = author;
this.press = press;
this.version = version;
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", press='" + press + '\'' +
", version=" + version +
", price=" + price +
'}';
}
}
```
Library.java:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Library {
private List<Book> books; // 图书列表
public Library() {
books = new ArrayList<>();
}
// 添加图书
public void addBook(Book b) {
books.add(b);
}
// 持久化保存图书
public void persist() throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("books.dat"));
oos.writeObject(books);
oos.close();
}
// 从文件中读取所有图书
public Book[] restore() throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("books.dat"));
List<Book> list = (List<Book>) ois.readObject();
ois.close();
return list.toArray(new Book[list.size()]);
}
}
```
Main.java:
```java
import java.io.IOException;
public class Main {
public static void main(String[] args) {
Library library = new Library();
// 添加图书
library.addBook(new Book("Java编程思想", "Bruce Eckel", "机械工业出版社", 4, 99.0));
library.addBook(new Book("深入理解Java虚拟机", "周志明", "机械工业出版社", 2, 89.0));
library.addBook(new Book("算法导论", "Thomas H. Cormen", "机械工业出版社", 3, 69.0));
// 持久化保存图书
try {
library.persist();
System.out.println("成功持久化保存图书到文件books.dat");
} catch (IOException e) {
System.out.println("持久化保存图书失败:" + e.getMessage());
}
// 从文件中读取所有图书并输出
try {
Book[] books = library.restore();
System.out.println("成功从文件books.dat中读取所有图书:");
for (Book book : books) {
System.out.println(book);
}
} catch (IOException | ClassNotFoundException e) {
System.out.println("从文件中读取图书失败:" + e.getMessage());
}
}
}
```
在运行程序前,请确保程序所在的目录下存在books.dat文件。运行程序后,程序会先添加3本图书,然后持久化保存到文件books.dat中。接着,程序会从文件books.dat中读取所有图书并输出到控制台。
阅读全文