package fs; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class IOReader { private static final Logger log = LoggerFactory.getLogger(IOReader.class); /** * 功能:Java读取txt文件的内容 步骤:1:先获得文件句柄 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 4:一行一行的输出。readline()。 备注:需要考虑的是异常情况 * * @param filePath */ public static String readTxtFile(String filePath) { StringBuffer fileInfo = new StringBuffer(); try { String encoding = "UTF-8"; File file = new File(filePath); if (file.isFile() && file.exists()) { // 判断文件是否存在 InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) { fileInfo.append(lineTxt); // System.out.println(lineTxt); } read.close(); } else { System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } return fileInfo.toString(); } /** * 在maven项目中直接获取配置文件当前path然后并读取内容 * * @param fileName * @return */ public static String getDefaultPath_ReadLine(Class c, String fileName) { String line = ""; ClassLoader classLoader = c.getClassLoader(); URL resource = classLoader.getResource(fileName); String path = resource.getPath(); line = readTxtFile(path); return line; } /** * 读取项目中的配置文件 * * @param fileName * 文件名 * @param key * 对应参数key * @return */ public static String getPropertiesKeysValue(String fileName, String key) { String value = ""; InputStream is = IOReader.class.getClassLoader().getResourceAsStream(fileName); // 获取文件的位置 String filePath = IOReader.class.getClassLoader().getResource(fileName).getFile(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); Properties props = new Properties(); try { props.load(br); value = props.getProperty(key); } catch (IOException e) { e.printStackTrace(); } return value; } public static void main(String[] args) { String msg = getPropertiesKeysValue("redis.properties", "redis.host"); System.out.println(msg); } }