java打印超市小票
时间: 2024-09-07 19:05:53 浏览: 94
在Java中,打印超市小票通常涉及到文件I/O操作和字符串格式化。你可以使用`java.io.PrintStream`或者`java.util.Scanner`来完成这个任务。以下是一个简单的步骤示例:
1. **创建实例**: 首先,你需要一个`PrintWriter`或`BufferedWriter`对象,它们可以连接到打印机:
```java
import java.io.*;
import java.text.SimpleDateFormat;
public class ReceiptPrinter {
private PrintWriter writer;
public void initPrinter() throws IOException {
writer = new PrintWriter(new BufferedWriter(new FileWriter("receipt.txt"))) // 文件路径替换为你实际的打印机设备
.append("\u00A7"); // 添加发票开始符
}
}
```
2. **数据结构**: 创建一个包含商品信息的数据结构,例如`ArrayList<Item>`,每个`Item`包含名称、价格、数量等。
3. **格式化**: 使用`SimpleDateFormat`对日期进行格式化,并将商品信息写入小票:
```java
class Item {
String name;
double price;
int quantity;
// 构造函数...
}
void printReceipt(ArrayList<Item> items) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
writer.println("超市小票 - " + sdf.format(new Date()));
for (Item item : items) {
writer.printf("%s %d*%f=%f元%n", item.name, item.quantity, item.price, item.quantity * item.price);
}
writer.println("\n谢谢惠顾!"); // 小票结束符
}
```
4. **关闭流**: 打印完毕后,别忘了关闭资源:
```java
public void closePrinter() throws IOException {
writer.close();
}
```
5. **使用**:
```java
public static void main(String[] args) {
try {
ReceiptPrinter printer = new ReceiptPrinter();
printer.initPrinter();
ArrayList<Item> items = ... // 填充商品列表
printReceipt(items);
printer.closePrinter();
} catch (IOException e) {
e.printStackTrace();
}
}
```
阅读全文