外部文件读取

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class InvalidList {

	private static final String FILE_NAME = "invalidlist.txt";

	private static List<String> urls = new ArrayList<String>();

	static {
		File file = new File(System.getProperty("user.dir") + "/" + FILE_NAME);
		if (file.exists()) {
			BufferedReader br = null;
			try {
				br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
				String line = null;
				while ((line = br.readLine()) != null) {
					urls.add(line);
				}

			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				if (br != null) {
					try {
						br.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}

	public static List<String> elements() {
		return urls;
	}

}


若在服务器中,单独用jar包执行,目标文件在jar的同一目录中


### C++读取外部文件的方法 在C++中,可以使用标准库中的`<fstream>`头文件来实现文件的读写操作。以下是读取外部文件的一个典型方法和示例代码: #### 使用`std::ifstream`读取文件 `std::ifstream`是C++标准库提供的类,用于从文件读取数据。可以通过多种方式读取文件内容,例如逐行读取、按字符读取或一次性读取整个文件。 ```cpp #include <iostream> #include <fstream> #include <string> int main() { // 打开文件 std::ifstream inputFile("example.txt"); // 文件名需根据实际情况修改 if (!inputFile.is_open()) { // 检查文件是否成功打开 std::cerr << "Failed to open file for reading." << std::endl; return 1; } std::string line; while (getline(inputFile, line)) { // 逐行读取文件内容 std::cout << line << std::endl; // 输出每一行内容 } inputFile.close(); // 关闭文件 return 0; } ``` 上述代码展示了如何使用`std::ifstream`逐行读取文件内容[^4]。如果需要按字符读取文件,可以使用以下代码片段: ```cpp #include <iostream> #include <fstream> int main() { std::ifstream inputFile("example.txt"); if (!inputFile.is_open()) { std::cerr << "Failed to open file for reading." << std::endl; return 1; } char ch; while (inputFile.get(ch)) { // 按字符读取文件内容 std::cout << ch; // 输出每个字符 } inputFile.close(); return 0; } ``` #### 一次性读取整个文件 如果希望将整个文件的内容读取到一个字符串中,可以使用以下方法: ```cpp #include <iostream> #include <fstream> #include <sstream> #include <string> int main() { std::ifstream inputFile("example.txt"); if (!inputFile.is_open()) { std::cerr << "Failed to open file for reading." << std::endl; return 1; } std::ostringstream buffer; buffer << inputFile.rdbuf(); // 将文件内容读取到字符串流中 std::string content = buffer.str(); // 转换为字符串 std::cout << content << std::endl; inputFile.close(); return 0; } ``` 此方法通过`std::ostringstream`和`rdbuf()`函数将文件内容一次性读取到内存中。 ### 注意事项 - 在读取文件之前,必须确保文件存在并且路径正确。 - 如果文件可能包含大量数据,建议逐行读取以避免占用过多内存。 - 在完成文件操作后,务必调用`close()`关闭文件,以释放资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值