在Java 9中,Oracle改进了String连接。现在"" + someBoolean变成invokedynamic带有StringConcatFabric.makeConcatbootstrap方法。该结构在运行时生成将您的字符串连接在一起的类。我想禁用此行为并回退到普通的旧字符串生成器。
因此,我认为javac具有执行我想要的功能的标志。但是我找不到。
我正在尝试将内容从一个文件移动到另一个文件。
我的代码:
char *path = extractFileName(args[1]);
if (path == 0)
return -1;
FILE *input = fopen(path, "r");
rewind(input);
fseek(input, 0L, SEEK_END);
long sz = ftell(input);
printf("sz: %ld\n", sz);
rewind(input);
size_t a;
FILE *result = fopen("result.mp3", "w");
size_t counter = 0;
char buffer[128];
while ((a = fread(&buffer[0], 1, 128, input)) != 0) {
fwrite(&buffer[0], 1, a, result);
counter += a;
}
printf("%d\n", counter);
printf("ferror input: %d\n", ferror(input));
printf("feof input: %d\n", feof(input));
Run Code Online (Sandbox Code Playgroud)
执行后打印
sz: 6675688
25662
ferror input: 0
feof input: 16 …Run Code Online (Sandbox Code Playgroud)