文件夹中的 XOR 转换 jpeg
XOR transform jpeg in Folders
这是我发现的一段代码,它查看文件夹中的文件 xor 转换文件并输出它们。根据我的搜索,我认为它是 java 但它不是 运行,我得到的只是错误。
final Path indir = Paths.get("C:\Temp\crin");
final Path outdir = Paths.get("C:\Temp\crout");
final List<Path> contents = new ArrayList<>();
Files.newDirectoryStream(indir).forEach(contents::add);
for (final Path p : contents) {
final byte[] arr = Files.readAllBytes(p);
for (int i = 0; i < arr.length; i++)
arr[i] ^= 0x42;
Files.write(outdir.resolve(p.getFileName()), arr);
}
我在 cmd 中尝试这个并得到
javac decode.java
ecode.java:1: error: class, interface, or enum expected
final Path indir = Paths.get("C:\Temp\crin");
^
decode.java:2: error: class, interface, or enum expected
final Path outdir = Paths.get("C:\Temp\crout");
^
decode.java:3: error: class, interface, or enum expected
final List<Path> contents = new ArrayList<>();
^
decode.java:4: error: class, interface, or enum expected
Files.newDirectoryStream(indir).forEach(contents::add);
^
decode.java:5: error: class, interface, or enum expected
for (final Path p : contents) {
^
decode.java:5: error: class, interface, or enum expected
for (final Path p : contents) {
^
decode.java:6: error: class, interface, or enum expected
final byte[] arr = Files.readAllBytes(p);
^
decode.java:7: error: class, interface, or enum expected
for (int i = 0; i < arr.length; i++)
^
decode.java:7: error: class, interface, or enum expected
for (int i = 0; i < arr.length; i++)
^
decode.java:7: error: class, interface, or enum expected
for (int i = 0; i < arr.length; i++)
^
decode.java:9: error: class, interface, or enum expected
Files.write(outdir.resolve(p.getFileName()), arr);}
^
decode.java:9: error: class, interface, or enum expected
Files.write(outdir.resolve(p.getFileName()), arr);}
^
12 errors
这段代码被描述为有效,所以如果我错了并且代码不是 java 那是什么,如果是 java 我做错了什么。
更新
尝试了更新后的代码,现在错误减少了,我现在明白了
javac decode.java
decode.java:13: error: ')' expected
Files.newDirectoryStream(indir).forEach(contents::add);
^
decode.java:13: error: illegal start of expression
Files.newDirectoryStream(indir).forEach(contents::add);
^
decode.java:13: error: ';' expected
Files.newDirectoryStream(indir).forEach(contents::add);
^
3 errors
您至少需要导入正在使用的 classes。您需要创建一个 class,它需要包含一个 main()
方法。像,
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class decode { // <-- by convention, should be Decode
public static void main(String[] args) {
final Path indir = Paths.get("C:\Temp\crin");
final Path outdir = Paths.get("C:\Temp\crout");
final List<Path> contents = new ArrayList<>();
try {
Files.newDirectoryStream(indir).forEach(contents::add);
for (final Path p : contents) {
final byte[] arr = Files.readAllBytes(p);
for (int i = 0; i < arr.length; i++)
arr[i] ^= 0x42;
Files.write(outdir.resolve(p.getFileName()), arr);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意 我没有 运行 你上面的代码,你需要将你的文件添加到 C:\Temp\crin\
代码才能读取它们。
这是我发现的一段代码,它查看文件夹中的文件 xor 转换文件并输出它们。根据我的搜索,我认为它是 java 但它不是 运行,我得到的只是错误。
final Path indir = Paths.get("C:\Temp\crin");
final Path outdir = Paths.get("C:\Temp\crout");
final List<Path> contents = new ArrayList<>();
Files.newDirectoryStream(indir).forEach(contents::add);
for (final Path p : contents) {
final byte[] arr = Files.readAllBytes(p);
for (int i = 0; i < arr.length; i++)
arr[i] ^= 0x42;
Files.write(outdir.resolve(p.getFileName()), arr);
}
我在 cmd 中尝试这个并得到
javac decode.java
ecode.java:1: error: class, interface, or enum expected
final Path indir = Paths.get("C:\Temp\crin");
^
decode.java:2: error: class, interface, or enum expected
final Path outdir = Paths.get("C:\Temp\crout");
^
decode.java:3: error: class, interface, or enum expected
final List<Path> contents = new ArrayList<>();
^
decode.java:4: error: class, interface, or enum expected
Files.newDirectoryStream(indir).forEach(contents::add);
^
decode.java:5: error: class, interface, or enum expected
for (final Path p : contents) {
^
decode.java:5: error: class, interface, or enum expected
for (final Path p : contents) {
^
decode.java:6: error: class, interface, or enum expected
final byte[] arr = Files.readAllBytes(p);
^
decode.java:7: error: class, interface, or enum expected
for (int i = 0; i < arr.length; i++)
^
decode.java:7: error: class, interface, or enum expected
for (int i = 0; i < arr.length; i++)
^
decode.java:7: error: class, interface, or enum expected
for (int i = 0; i < arr.length; i++)
^
decode.java:9: error: class, interface, or enum expected
Files.write(outdir.resolve(p.getFileName()), arr);}
^
decode.java:9: error: class, interface, or enum expected
Files.write(outdir.resolve(p.getFileName()), arr);}
^
12 errors
这段代码被描述为有效,所以如果我错了并且代码不是 java 那是什么,如果是 java 我做错了什么。
更新
尝试了更新后的代码,现在错误减少了,我现在明白了
javac decode.java
decode.java:13: error: ')' expected
Files.newDirectoryStream(indir).forEach(contents::add);
^
decode.java:13: error: illegal start of expression
Files.newDirectoryStream(indir).forEach(contents::add);
^
decode.java:13: error: ';' expected
Files.newDirectoryStream(indir).forEach(contents::add);
^
3 errors
您至少需要导入正在使用的 classes。您需要创建一个 class,它需要包含一个 main()
方法。像,
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class decode { // <-- by convention, should be Decode
public static void main(String[] args) {
final Path indir = Paths.get("C:\Temp\crin");
final Path outdir = Paths.get("C:\Temp\crout");
final List<Path> contents = new ArrayList<>();
try {
Files.newDirectoryStream(indir).forEach(contents::add);
for (final Path p : contents) {
final byte[] arr = Files.readAllBytes(p);
for (int i = 0; i < arr.length; i++)
arr[i] ^= 0x42;
Files.write(outdir.resolve(p.getFileName()), arr);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意 我没有 运行 你上面的代码,你需要将你的文件添加到 C:\Temp\crin\
代码才能读取它们。