拆分路径 java_JAVA 类文件中的路径如何拆分和替换

我做Swing的时候文件要放绝对路径,相对路径出不来!所以我用如果我的类放在D:\aaa\Class里Thread.currentThread().getContextClassLoader().getResource("");MenuTest.class.getClas...

我做Swing的时候文件要放绝对路径,相对路径出不来!

所以我用

如果我的类放在D:\aaa\Class里

Thread.currentThread().getContextClassLoader().getResource("");

MenuTest.class.getClassLoader().getResource("");

ClassLoader.getSystemResource("");

MenuFrame.class.getResource("");

MenuFrame.class.getResource("/"); //Class文件所在路径

new File("/").getAbsolutePath(); //得到根目录 D:\

System.getProperty("user.dir"); //得到Class文件的上级目录,这里得到的值是D:\aaa

我再用一个变量来接收他的值,再连接以后的路径。我是这样做的,

假如我们已经用变量a来接收到了值;

JLabel jLabel1 = new JLabel(new ImageIcon( a + "//src//menutest//images//11.jpg"));

问题出来了!出来的是(D:\aaa//images//11.jpg)

无法显示图片,

我再想用 a = a.replaceAll("\", "//"); 字符串替换,可是不行,只要打入\就会报错,想问一下各位高手,还有其它方法吗?

我试过用相对路径!但是不行,很早就用过了!我用的是JBuilder2006,

这个转换的问题我自己已经解决了,不过还是谢谢你!

我之所以以前没的转成功,是没有了解路径在内存中存储的方方式,

比如说D:\aa这个路径,存以内存中是D:\\aa而我们要正常的转的话,不可以a = a.replaceAll("\", "//");

这样出来的就不是想要的结果了!

而要

a = a.replaceAll("\\\\", "//");

这样就可以正确的转了!这时候的结果就为D://

不过现在我让新的烦躁烦住了!

我是一个新手!刚学的!现在我在一个类文件中转好了值,但不知道怎么把值传给在同一个包中的另一个类文件中去!

比如aaa.java中main()方法中变量C的值传到bbb.java中去,可以在bbb.java是任何的类和方法都可以使用!

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好!下面是一段按行数拆分文件Java 代码。 ``` import java.io.*; public class FileSplitter { public static void splitFile(String fileName, int linesPerFile) { try { BufferedReader reader = new BufferedReader(new FileReader(fileName)); String line; int lineCounter = 0; int fileCounter = 0; String newFileName; BufferedWriter writer = null; while ((line = reader.readLine()) != null) { if (lineCounter % linesPerFile == 0) { if (writer != null) { writer.close(); } fileCounter++; newFileName = fileName + "_" + fileCounter; writer = new BufferedWriter(new FileWriter(newFileName)); } writer.write(line); writer.newLine(); lineCounter++; } if (writer != null) { writer.close(); } reader.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { splitFile("original.txt", 5); } } ``` 该代码使用 `BufferedReader` 和 `BufferedWriter` 读取和写入文件,并以行为单位进行操作。它每读取 `linesPerFile` 行数据就会创建一个新文件,并在新文件写入该行数据。如果您想要拆分其他数量的行,可以将 `linesPerFile` 的值更改为您所需的数量。 在此代码,将会把文件 "original.txt" 按每 5 行拆分成多个新文件。 ### 回答2: 下面是一个根据行数拆分文件Java代码示例: ```java import java.io.*; public class FileSplitter { public static void main(String[] args) { String filePath = "input.txt"; // 待拆分文件路径 int linesPerFile = 10; // 每个输出文件的行数 try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line; int fileIndex = 1; int lineCount = 0; BufferedWriter writer = new BufferedWriter(new FileWriter("output_" + fileIndex + ".txt")); while ((line = reader.readLine()) != null) { writer.write(line); writer.newLine(); lineCount++; if (lineCount == linesPerFile) { writer.close(); fileIndex++; lineCount = 0; writer = new BufferedWriter(new FileWriter("output_" + fileIndex + ".txt")); } } writer.close(); System.out.println("文件拆分完成!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 这段代码使用`BufferedReader`从输入文件逐行读取内容,并使用`BufferedWriter`将内容写入输出文件。在每写入指定行数的内容后,会关闭当前输出文件,然后创建一个新的输出文件来继续写入。输出文件的命名规则是按照`output_1.txt`、`output_2.txt`这样的顺序递增。 请注意,以上代码仅仅提供了基本的文件拆分功能,还可以根据实际需求进行修改和优化。 ### 回答3: 为了实现按行数拆分文件的功能,可以使用Java的IO流和字符串处理方法。 以下是一个简单的Java代码示例: ``` import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class SplitFileByLines { public static void main(String[] args) { String inputFilePath = "input.txt"; // 输入文件路径 String outputFilePathPrefix = "output"; // 输出文件路径前缀 int linesPerFile = 10; // 每个文件的行数 try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath))) { int fileCount = 1; int lineCount = 0; String line; BufferedWriter writer = null; while ((line = reader.readLine()) != null) { if (writer == null || lineCount == linesPerFile) { if (writer != null) { writer.close(); } String outputFilePath = outputFilePathPrefix + fileCount + ".txt"; writer = new BufferedWriter(new FileWriter(outputFilePath)); fileCount++; lineCount = 0; } writer.write(line); writer.newLine(); lineCount++; } if (writer != null) { writer.close(); } System.out.println("文件拆分完成!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码,我们通过`BufferedReader`来逐行读取输入文件的内容,并通过`BufferedWriter`来逐行写入输出文件。在定义输出文件路径时,根据需要拆分的行数加上一个计数器以保证输出文件的唯一性。 每读取指定行数的行数后,关闭上一个输出文件,创建一个新的输出文件,并将行数计数器重置为0。最后根据需要拆分的行数,可能会生成多个输出文件。 请确保将`input.txt`替换为要拆分的输入文件的实际路径,并可根据需求调整`outputFilePathPrefix`和`linesPerFile`的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值