笔记图床解决方案(新)
图床选择
- 鉴于免费的图床有多种不稳定因素,所以推荐选择较为低价的【阿里云OSS】;
- 使用【阿里云OSS】作为PicGo图床的教程在此
-
教程地址:阿里云OSS搭建图床
旧图床地址替换
-
- 我本人之前使用的是 Gitee 作为图床,但图床仓库被封,本地 Markdown文件无法访问原图片地址
- 所以需要将原来 MarkDown 文件里的对应图片地址内容替换
- 自己写了个 java 代码进行目录下所有文本文件的内容替换,欢迎使用
class HelpTool{
//获取该文件夹下的所有文件,文件夹除外
public List<File> getSubFiles(String dirPath){
List<File> subFiles = new ArrayList<>();
File file = new File(dirPath);
if(file.isDirectory()){
//判断是否是目录,是目录则进行下一步操作
for (File curFile : file.listFiles()){
if (curFile.isDirectory()){
//是目录,则递归找文件
subFiles.addAll(getSubFiles(curFile.getPath()));
}else {
//不是目录,则直接添加该文件
subFiles.add(curFile);
}
}
}else {
subFiles.add(file);
}
return subFiles;
}
//获取指定文件内的文本
private String getContent(File file){
//采用字节流读取文件
if(file.isFile() && file.exists()){
try {
FileInputStream fileInputStream = new FileInputStream(file);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder sbd = new StringBuilder();
String text = null;
while((text = bufferedReader.readLine()) != null){
sbd.append(text);
sbd.append('\n');
}
//关闭
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
return sbd.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
//将指定内容写入到指定文件中
private boolean writeToFile(File file, String content){
if(file.exists() && file.isFile()){
try {
FileOutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(content);
//关闭
bufferedWriter.close();
outputStreamWriter.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
return false;
}
//替换指定文件路径的文件内容
public boolean changeContent(File file, String originalContent, String newContent){
if(!file.isDirectory()){
//获取文本内容
String content = getContent(file);
//打印替换后的文本内容
if(writeToFile(file,content.replaceAll(originalContent,newContent))){
System.out.println(file.getPath()+"---------------------替换成功!");
return true;
}
}
System.out.println(file.getPath()+"------------非文件!操作失败!");
return false;
}
}
public class PathChange {
//文件夹路径
static String directoryPath = "";
//要替换的内容
static String originalContent = "";
//替换后的内容
static String newContent = "";
public static void main(String[] args) {
HelpTool helpTool = new HelpTool();
List<File> files = helpTool.getSubFiles(directoryPath);
for (File curFile : files){
helpTool.changeContent(curFile,originalContent,newContent);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构