Java增量编码不起作用?
我正在尝试实现这个代码 在java中,尽管它不起作用。如果我用C++做的很好,所以我一直熬夜解决这个问题。我没有一个错误的俱乐部。 例如: 如果我读一个文件 input.txt 这是对复制文件的测试 它应该在一个文件中写入编码文本,还应该能够读取编码文本并在另一个文件上解码 像这样: 普通文本: 这是一个美好的世界 编码文本: T∗☺ “我 ⌠☼≈┤W°♥·°╩ 解码文本: 这是一个美好的世界。 按任意键继续 我做错了什么Java增量编码不起作用?,java,Java,我正在尝试实现这个代码 在java中,尽管它不起作用。如果我用C++做的很好,所以我一直熬夜解决这个问题。我没有一个错误的俱乐部。 例如: 如果我读一个文件 input.txt 这是对复制文件的测试 它应该在一个文件中写入编码文本,还应该能够读取编码文本并在另一个文件上解码 像这样: 普通文本: 这是一个美好的世界 编码文本: T∗☺ “我 ⌠☼≈┤W°♥·°╩ 解码文本: 这是一个美好的世界。 按任意键继续 我做错了什么 public static void delta_encode(Stri
public static void delta_encode(String filename) throws IOException{
FileInputStream reader = null;
FileOutputStream writer = null;
try{
reader = new FileInputStream (filename);
writer = new FileOutputStream ("encode.txt");
char last = 0;
int c;
while((c = reader.read()) != -1){
char current = (char)c;
writer.write(current - last);
last = current;
}
}finally{
if(reader != null)
reader.close();
if(writer != null)
writer.close();
}
}
public static void delta_decode(String filename) throws IOException{
FileInputStream reader = null;
FileOutputStream writer = null;
try{
reader = new FileInputStream (filename);
writer = new FileOutputStream ("decode.txt");
char last = 0;
int c;
while((c = reader.read()) != -1){
char current = (char)c;
writer.write(current + last);
last = current;
}
}finally{
if(reader != null)
reader.close();
if(writer != null)
writer.close();
}
}
C和Java之间的一个核心区别是原语的编码 您的错误是假设Java
char
与C的char
相同。它不是
尝试使用
byte
而不是char
“它不起作用”不会给我们任何错误指示。请阅读“它不工作”。这是非常模糊的。到底是什么问题?错误?输出不是您所期望的?你需要提供更多的信息。输出不是我所期望的。我想要像这样的普通文本:这是一个美好的世界。编码文本:T☺ “我⌠☼≈┤W°♥·°╩ 解码文本:这是一个奇妙的世界。