go文件操作实践[读写zip tar xlsx文件]

这篇我接着实践zip,tar和xlsx文件的读写操作。简单介绍一下 tar吧:

tar 是一种打包格式,但不对文件进行压缩,所以打包后的文档一般远远大于 zip 和 tar.gz,因为不需要压缩的原因,所以打包的速度是非常快的,打包时 CPU 占用率也很低。
tar 的目的在于方便文件的管理,比如在我们的生活中,有很多小物品分散在房间的各个角落,为了方便整洁可以将这些零散的物品整理进一个箱子中,而 tar 的功能就类似这样。
创建 tar 归档文件与创建 .zip 归档文件非常类似,主要不同点在于我们将所有数据都写入相同的 writer 中,并且在写入文件的数据之前必须写入完整的头部,而非仅仅是一个文件名。
tar 打包实现原理如下:
创建一个文件 x.tar,然后向 x.tar 写入 tar 头部信息;
打开要被 tar 的文件,向 x.tar 写入头部信息,然后向 x.tar 写入文件信息;
当有多个文件需要被 tar 时,重复第二步直到所有文件都被写入到 x.tar 中;
关闭 x.tar,完成打包

demo:

package main

import (
	"archive/tar"
	"archive/zip"
	"bytes"
	"fmt"
	"io"
	"os"
	"strings"

	"github.com/tealeg/xlsx"
)

type Website struct {
	Name    string `xml:"name,attr"`
	Content []string
}

var info []Website

func init() {
	info = []Website{
		{"Golang.txt", []string{"http://c.biancheng.net/cplus/", "http://c.biancheng.net/linux_tutorial/"}},
		{"Java.txt", []string{"http://c.biancheng.net/socket/", "http://c.biancheng.net/python/"}},
	}
	/*
		列举了一些常用的 flag 文件处理参数:
		O_RDONLY:只读模式打开文件;
		O_WRONLY:只写模式打开文件;
		O_RDWR:读写模式打开文件;
		O_A
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中读写Excel文件(.xlsx)有多种方法,其中比较常用的是使用Apache POI库。以下是一个简单示例: 1. 导入Apache POI库 你可以在Maven项目中添加以下依赖项: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> ``` 或者下载POI库的jar包并将其添加到项目中。 2. 读取Excel文件 ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadExcel { public static void main(String[] args) { try { FileInputStream file = new FileInputStream(new File("example.xlsx")); // 创建工作簿 Workbook workbook = new XSSFWorkbook(file); // 选择第一个工作表 Sheet sheet = workbook.getSheetAt(0); // 迭代行 for (Row row : sheet) { // 迭代单元格 for (Cell cell : row) { // 获取单元格的值 String cellValue = cell.getStringCellValue(); System.out.print(cellValue + "\t"); } System.out.println(); } // 关闭工作簿 workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 上面的代码打开名为“example.xlsx”的Excel文件并打印出所有单元格的值。 3. 写入Excel文件 ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class WriteExcel { public static void main(String[] args) { try { // 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建行 Row row = sheet.createRow(0); // 创建单元格并设置值 Cell cell = row.createCell(0); cell.setCellValue("Hello, world!"); // 写入文件 FileOutputStream file = new FileOutputStream("example.xlsx"); workbook.write(file); // 关闭工作簿 workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 上面的代码创建了一个名为“Sheet1”的工作表,并在第一行第一列写入了“Hello, world!”。最后将工作簿保存到名为“example.xlsx”的文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值